我的git学习链接,在平板上登陆git后最下边的git命令学习,如下图所示:
1.创建bugFix分支
git branch bugFix
2.切换到bugFix分支
git checkout bugFix
3.合并分支
新建一个分支,在其上开发某个新功能,开发完成后再合并回主线,简单通俗易懂的意思就是:“我要把这两个父节点本身及它们所有的祖先都包含进来”
把bugFix分支合并到master分支上,提前先切换到master分支上
git checkout master;
git merge bugFix
如下图所示:
注释:带*是代表当前所在的分支
将master分支合并到bugFix分支上
git checkout bugFix;
git merge master
注释:带*是代表当前所在的分支
需要注意的是,在合并master分支和bugFix分支的时候,不仅仅是将两个分支合并,并且相当于形成了一次新得提交。就如上图中的C4所示。
4.rebase合并分支
实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。
运行代码
git rebase master
结果如下图所示:
运行完此时,还需要更新master分支,更新的方法,如下图所示:
git rebase bugFix
5.HEAD移动
git checkout c4
c4代表的是某一个提交,这个提交是当前所在分支的指向的那个最新的提交。
此时HEAD相当于指针或者游标就会指向C4这个提交,再输入
git checkout HEAD^
这个HEAD指针就会一直向上移动,一直往上,每次都是指向本次指向的提交的父节点。
HEAD游标也可以是一次相对移动很多步,比如:
git checkout HEAD~4
这样的话,就是git向上移动4次。
再比如:
6.强制修改分支位置
代码:
git branch -f master HEAD~3
HEAD~3的意思是,图片上任何一个表示提交的圆圈都可以
运行结果如下:
7.撤销变更
本地区,还没有push的时候,撤销提交
git reset HEAD~1
HEAD~1表示一个提交,运行结果如下图所示:
提交过后,已经push,远程库已经更新的时候
代码:
git revert HEAD
运行结果如下图所示:
8.复制cherry-pick
代码:
git cherry-pick c2 c4
c2和c4代表提交,需要注意的是:复制的时候,复制到当前的分支指向的提交之后,形成一个新得提交,分支指向的提交也会跟着改变。
运行结果:
9.复制rebase
代码:
git rebase -i HEAD~4
HEAD~4代表一个圆圈提交,表示复制到哪个提交的后边。这代码是默认当前所在分支,所以才会有相对位置HEAD~4
运行结果: