homework: practice for git merge, rebase and squash-merge
实践本 homework 之前:
- 请先完成 hw-githubForkAndIssue。
- 请先完成 hw-gitBranchAndCommit。
本次 homework 是一些关于 Git&Github 的知识,在此,你将通过实践逐步学习以下知识:
- Git Merge
- Git Rebase
- Git Squash-Merge
- Fork 当前 Repo 到你的账户之下,从现在开始这个 fork 出来的 Repo 将在下文中被称为 "你的 Repo"
- 执行
git clone https://github.com/你的用户名/hw-gitMergeAndRebase将你 fork 的仓库 clone 到本地 - 在所有练习开始之前,请明确,现在这个 Repo 有以下的三对分支:
A---B---C my-feature-1
/
---D---E---F master-1
A---B---C my-feature-2
/
---D---E---F master-2
A---B---C my-feature-3
/
---D---E---F master-3
-
请在
master-1分支上合并my-feature-1分支(解决该解决的冲突,保留该保留的代码),并产生一个合并提交G,期望结果如图所示:A---B---C my-feature-1 / \ ---D---E---F---G master-1 -
push 这个
master-1分支到你的 Repo
OK,现在你完成了 hw1,你现在需要对母仓库提交一个 issue 来检验你的 Repo 是否正确,issue 模板请选择 "Submit homework1"
-
请在
my-feature-2分支上 rebasemaster-2分支(解决该解决的冲突,保留该保留的代码),期望结果如图所示:D---E---F---A'---B'---C' my-feature-2 | master-2 -
push 这个
my-feature-2分支到你的 Repo(可能会用到--force,请回忆一下--force的使用红线 3 个要点)
OK,现在你完成了 hw2,你现在需要对母仓库提交一个 issue 来检验你的 Repo 是否正确,issue 模板请选择 "Submit homework2"
-
请将
my-feature-3分支上的 3 个提交(A、B、C)使用merge --squash方式(解决该解决的冲突,保留该保留的代码),使得这三个提交被合并成一个提交进入master-3分支,期望结果如图所示:A---B---C my-feature-3 / ---D---E---F---G master-3 | 压扁后的提交 -
push 这个
master-3分支到你的 Repo
OK,现在你完成了 hw3,你现在需要对母仓库提交一个 issue 来检验你的 Repo 是否正确,issue 模板请选择 "Submit homework3"
-
请将基于
my-feature分支上面最新的三个提交压扁成一个提交:压扁前:
---D---E---F---G my-feature压扁后:
---D---H my-feature | 压扁后的提交 -
push 这个
my-feature分支到你的 Repo(可能会用到--force,请回忆一下--force的使用红线 3 个要点)
OK,现在你完成了 hw4,你现在需要对母仓库提交一个 issue 来检验你的 Repo 是否正确,issue 模板请选择 "Submit homework4"