git 查看分支树形
git log --oneline --graph --decorate --all
相对引用 ^ 、 ~
- ^ (移动到上个提交)
git checkout HEAD^
- ~num(移动到前几个提交,如num为空,则默认移动到上一个)
git checkout HEAD~2
我使用相对引用最多的就是移动分支。可以直接使用 -f 选项让分支指向另一个提交。例如:
git branch -f master HEAD~3
上面的命令会将 master 分支强制指向 HEAD 的第 3 级父提交。
撤销变更
- reset(适用于个人)
git reset HEAD^
git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
- revert(适用于多人开发和需要推送到远程仓库)
git revert HEAD
虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!
为了撤销更改并分享给别人,我们需要使用 git revert