Git 情景速查

拉取远程分支并创建本地分支

使用如下 git 命令查看分支情况

git branch       # 查看本地分支
git branch -r    # 查看所有远程分支
git branch -a    # 查看远程和本地所有分支

在输出结果中,前面带 * 的是当前分支。

使用 checkout 命令检出分支,并建立的本地分支会和远程分支建立映射关系。

git checkout -b 本地分支名x origin/远程分支名x

恢复本地误删的文件

通过 git 进行管理的项目,如果在本地编辑的过程中误删了某些文件或者文件夹,可以通过 git 操作来复原。

首先使用 git status 查看本地对改动的暂存记录,例如不小心删了工程中的 math 目录。

$ git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add/rm <文件>..." 更新要提交的内容)
  (使用 "git restore <文件>..." 丢弃工作区的改动)
        删除:     math/CMakeLists.txt
        删除:     math/MathFunctions.c
        删除:     math/MathFunctions.h

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

由于 math 目录及其文件在之前已经提交了,因此可以通过 checkout 方式找回。

git checkout math

这样可以复原了。

如何撤销 add 操作

对于已经 add(暂存)但还没 commit(提交)的操作,可以使用如下命令取消暂存:

git reset <file>

或者取消所有暂存更改:

git reset

如何撤销 commit 操作

对于已经 commit 但还没 push 的操作,如果想要保留已经 add 的文件,可以使用如下命令:

git reset --soft HEAD^

这样就会回到 commit 之前 add 之后的状态,这里的 HEAD^ 是上一个版本的意思,如果要回退到前 n 个,就表示为 HEAD~n

如果不需要保留 add 的文件,可以使用 --hard 选项,直接恢复到上一个 commit 结束的样子。

git reset --hard HEAD^

如果想同时撤销 add 和 commit 操作,但想保留工作空间的修改,可以使用 --mixed 选项。

git reset --mixed HEAD^

而如果是 commit 之后发现注释写错了,只想修改注释,可以使用下面命令进行修改。

git commit --amend

Leave a Reply