理解github常用命令一(合并分支,引用移动,撤销提交)
一个有趣的学习github命令的小游戏
本文所有截图来自该小游戏,仅做个人学习记录,如有侵权请联系本人删除
github常用命令
- git commit:提交命令,会创建一个新的提交记录;
- git checkout branchName:切换分支到名字为branchName的分支上;
- git branch branchName:创建一个新的分支,名字为branchName;
- cat .git/HEAD: 查看HEAD指向
- git symbolic-ref HEAD:如果HEAD指向了一个引用,可以用本命令查看HEAD指向
合并分支命令(*号表示HEAD指向的引用,也就是当前指向的引用)
git merge branchName:将branchName分支合并到当前引用指向的分支中,使用这个合并命令会保留有分支的历史记录。
git rebase branchName:将branchName分支合并到当前引用指向的分支中,使用这个合并命令不会保留分支的历史记录,但会将分支合并成线性的结构。
在提交树上移动
- HEAD的概念
- git checkout 提交记录名:分离HEAD,让HEAD指向该提交记录,而不是指向引用
git checkout branchName^:寻找指定提交记录的父提交
git checkout branchName~2:寻找指定提交记录的父父提交,相当于git checkout branchName^^
git branch -f master HEAD~3:将master引用指向HEAD的父父父提交记录,如下图
撤销命令
-
git reset 相对定位:回退到定位的位置(只对本地分支有效,对远程分支无效)。相对定位如master~2,代表master引用指向的提交记录的前两个提交记录。
- git revert 相对定位:回退到定位的位置(对远程分支有效)。