上篇文章讲解有点简陋,因此这篇作为补充。
1.创建分支
- git branch bugFix
2.切换分支
- git checkout bugFix
3.创建并切换分支
- git checkout -b bugFix
4.合并分支(处于C3时)
- git merge bugFix
5.使用rebase合并分支
5.1(处于c2时,新建的分支bugFix)
- git rebase master
5.2 切换分支到master (实现下图)
- git checkout msater
- git rebase bugFix
6.分离HEAD
- git checkout c4
AS中实战演示:
(1)分离Head指定到某个提交记录
git checkout <记录id>
(2)!表示分离的HEAD,在主分支分离HEAD
(3)不让!显示(不分离HEAD) 指向主分支即可
git checkout master
7.相对应用^(HEAD处于c4时,命令完如下图)
- git checkout HEAD^
- 另一种方式: git checkout HEAD~1 (1可以为其他数字,表示向前移动几个位置)
8.强制切换分支(当前处于c5强制到c0)
- git branch -f bugFix c0
9.撤销变更 reset (仅本地可以撤销变更,远程分支无效)
- git reset HEAD~1
10. 撤销更改远程有效 revert
- git revert HEAD (c2’和c1其实是同样的内容,push到远程即可)
另一种方式:
1.git reset --hard eebfc51296fcd9c7b8edb71691abffafaa9fae7a
后面的版本号为你要回退的版本
2.回退后本地代码会在该版本,继续输入命令
git push -f origin master
就会把远程主分支撤销到本地版本
11.复制内容到指定位置(主分支,在c5(master *)下只想拥有c2,c4的内容)
- git cherry-pick c2 c4 (注意c2 c4间不能加逗号,空格隔开即可)
12.更加强大的功能,可以使提交记录删除,更改顺序。
- git rebase -i HEAD~4
AS中使用的效果
在此记录:操作过程中HEAD又会有一个感叹号,是因为.git文件夹中新出现了一个rebase_merge文件夹.
13.添加标签Tag
- git tag v1 c1
14.添加标签后可查看的一些描述信息
- git describe master
- 输出:v1_2_gC2 最近的标签_相差的几个提交记录_当前记录的希哈值前几位
15.多分支rebase的使用
如何让(图一)变为(图二)大家有什么好的想法?
图一
图二
最优解决方案:
- git rebase master bugFix
- git rebase bugFix side
- git rebase side another
- git rebase another master
16.这里介绍一下另一种用法
我相信大家一定有很简单的方法分离到c2:
- git checkout c2
另一种方式:
- git checkout master^2
可以结合使用实现下图效果:
- git checkout HEAD~^2 ~2