git 常用命令

前言

本文主要罗列一些工作中常用的 git 命令,希望这些命令能对您有所帮助。

本地与远程有突冲,想放弃本地修改

git reset --hard FETCH_HEAD

重新从远端拉取某个文件

git checkout a.c

撤消某次 add

git rm --cached <added_file_to_undo>

撤消某次 commit

git reset --soft commitID  只是删除了commitId之后的commit记录,但是代码改动仍然存在
git reset --hard commitID  彻底的回到CommitID13:39时候的版本,之后的改动不存在了

将本地修改先暂存起来

git stash 将本地修改暂存起来
git stash pop 弹出暂存的修改

查看有冲突的文件

git status -uno

不显示临时文件

在 .gitignore 中添加不想被 git staus 看到的文件或目录

暂时回滚到某版本

首先通过 git log查看你之前的提交码

git log | more

commit 4adb3f0ecd9dbc79bd09666d88f8c2520305c001 Author: xxxxxx Date: Thu Jan 25 11:51:45 2018 +0800

摘取 commit 码的前 7位,执行下面的命令

git checkout 4adb3f0
git reset --hard 4adb3f0

回滚到主分支

git checkout master

服务端有更新,但你却 commit了你的代码

  • 先拉取服务端代码 git pull
  • 提交代码 git push
  • 如果你在 dev分支,此时还要拉取master的代码 1. 先 切换到 master 分支 git checkout master 2. 拉取代码 git pull 3. 重新切换到 dev 分支 git checkout dev

查看每次提交的文件列表

git log --stat | more

查看某些提交代码的变化

git show <commit id> [<filename>]

显示所有本地与远端分支

git branch -a

显示所有远程分支

git branch -r

显示远端地址

git remote -v

创建一个新分支

git checkout -b new_branch
git --set-upstream origin new_branch
git push origin new_branch

远程仓库已经删除,而本地仓库还在,如果清除?

git pull -p

git diff 不显示修改的内容

有些情况下,通过 git status 能查到某些文件有变化,但使用 git diff 却看不到修改的内容。可以使用下面的面试查看变化。

  • 第一种方法 git diff --cached 文件名
  • 或者 先将修改的文件重命名,然后执行下面的语句 git reset HEAD

配置更好的 git diff 工具

在使用 git diff 时,常常发现有很多不方便的地方。因为git diff 默认使用 patch 方式展示代码的不同。如果想看修改后代码的上下文就比较麻烦了(比如代码 review)。

其实 git 已经提供了扩展功能。可经将它的默认 diff 工具修改为vimdiff。配置如下:

  • 首先打开 git config 文件
vim ~/.gitconfig
  • 增加配置项
[difftool]
    prompt = false
[diff]
    vimdiff
    tool = vimdiff
[difftool "vimdiff"]
    path = /usr/bin/vimdiff

打tag

//为git打tag, 第一次需要在前面加一个v
git tag "v1.0.0" 
//将tag推送到远程仓库
git push --tags 

git merge 每次都生成一次commit

git merge --no-ff

拉某个 tag

git checkout tag_name

查看某个人的所有提交

git log --author=“author”

为git设置默认用户名和密码

在使用Git 的时候,经常会遇到需要频繁输入密码的情况,每次git push 和 git pull 都要求输入用户名和密码,如果提交频繁的话就十分不方便。

可以使用下面的方法,只需要第一次输入用户名和密码,以后都不用再输入了。

进入Git 配置文件

vim ~/.gitconfig   

修改配置文件,添加下面这一行。

[credential]  
    helper = store  

修改已提交的commit的用户名邮箱

  1. 第一步
git config --global user.name "newName"
git config --global user.email "newEmail"
  1. 修改已提交commit的用户名邮箱
git commit --amend --author="userName <userEmail>"

注意不能缺少< > 此指令仅能更新最近的一次commit的用户名邮箱

git 应用 patch

  1. 预览patch的结是
git apply --stat file.patch
  1. 检测patch后是否有错误
git apply --check file.patch
  1. 打patch
git am --signoff < a_file.patch
  1. 执行commit
git  commit -m ""
  1. 提交代码
git push

循环克隆

git clone --recursive https://xxx.git

给代码设置两个不同的源

git remote set-url origin https://xxx.git

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 通过WebRTC进行实时通信-获取样例代码

    如果你对 git 熟悉的话,可以通过从GitHub上获取codelab代码。地址如下:

    音视频_李超
  • 通过WebRTC进行实时通信-通过RTCPeerConnection传输视频

    RTCPeerConnection 是调用WebRTC传输音视频和交换数据的API。这个例子是在同一个页面中两个RTCPeerConnection对象之间建立连...

    音视频_李超
  • iOS下 AAC 音频编码

    iOS下Apple为我们提供了非常方便的音频编解码工具AudioToolbox。该工具中包含了常见的编解码库,如AAC、iLBC、OPUS等。今天我们就介绍一下...

    音视频_李超
  • 快速入门使用Git管理代码

    许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

    Bobby
  • GIT 远程仓库搭建与使用

    这一步生成了 idrsa 和 idrsa.pub 两个文件 (windows 在用户文件夹找),将 idrsa.pub 上传到 git 用户的 .ssh 目录下...

    Gaussic
  • 使用码云新建、推拉第一个项目文件

    本地电脑安装git。可通过 git --version 查看版本,确保本机已有git。

    子乾建建-Jeff
  • 10分钟带你入门git到github

    开局先来一个故事吧,故事看完如果不想看枯燥无味的指令,没关系我已经把这篇文章的内容录制成了一个视频,点击文末阅读原文就可以观看。或者说你已经熟练掌握git的使用...

    java金融
  • Git详细操作

    1.参考帮助文档:https://gitee.com/help/ 仓库管理 =公钥管理 =生成/添加SSH公钥

    小小咸鱼YwY
  • Git常用命令总结

    ​ 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.

    小小咸鱼YwY
  • 教妹子用 git(一)

    最近和一个研一妹纸合作弄自己的网站,然后发现妹纸不太懂 git。于是就写下这篇文章。看看能不能言简意赅的教会一个新手如何使用 git。

    程序员小浩

扫码关注云+社区

领取腾讯云代金券