本仓库用于练习各种Git的高级命令:
请fork本仓库,并在你的fork中完成如下操作:
我们有如下状态的三对分支:
A---B---C test-my-feature-1
/
D---E---F test-master-1
A---B---C test-my-feature-2
/
D---E---F test-master-2
A---B---C test-my-feature-3
/
D---E---F test-master-3
请在test-master-1分支上合并test-my-feature-1分支,并产生一个合并提交,如图所示:
A---B---C test-my-feature-1
/ \
D---E---F---G test-master-1
请在test-my-feature-2分支上rebase test-master-2分支,如图所示:
D---E---F---A'---B'---C' test-my-feature-2
|
test-master-2
请将test-my-feature-3分支上的3个提交使用merge --squash方式,使得这三个提交被合并成一个提交进入test-master-3分支
A---B---C test-my-feature-3
/
D---E---F---G test-master-3
|
压扁后的提交
请基于v6.0这个tag创建一个新的名为release-6x的分支,并将其中的bug修复掉(即删除Product.java中的System.out.println("I have a bug!");语句)
release-6x
/
v5.0---v6.0---v7.0---...--- master
请在test-my-feature分支上将最新的三个提交压扁成一个提交:
压扁前:
D---E---F---G test-my-feature
压扁后:
D---H test-my-feature
|
压扁后的提交
请在master分支上修复Product.java中的bug(即删除其中的System.out.println("I have a bug!");语句),并将修复bug的提交cherry-pick到release-9x分支上。
- 请在
master分支上revert9dfb38fc7f9a33299801c695092de3e2e8b67607这个提交。 - 然后再次将你刚刚revert的提交revert掉。
请在v1.0和v10.0这两个代码版本之间,使用git bisect命令找到第一个引入bug(即引入System.out.println("I have a bug!");语句)的提交。