在打开拉取请求期间使用压扁进行重定基础

时间:2018-06-27 09:39:09

标签: git git-workflow

和我在一起的熊很长

简介

分支working-branch进入development分支是一个开放的拉取请求,分支是具有以下提交的主要分支之一:

Commit 1
Commit 2
Commit 3

代码审查

现在,另一个开发人员选择了此拉取请求并进行了代码审查,然后他要求对每个示例的Commit 1Commit 3进行更改。

方法1

开发人员创建Commit 4,在其中实施所有反馈,并将其推送到回购中,该回购将依次出现在拉式请求提交历史记录中。

缺点,因为越来越多的反馈意见可能会应用于拉取请求,因此实际PR上的提交看起来像

Commit 1
Commit 2
Commit 3
Commit 4 (first round of feedback)
...
Commit n

方法2

Developer在本地创建新的提交,例如Commit 4Commit 5的操作请求更改,而Commit 3Commit 1 Commit 2 Commit 3 Commit 4 -> contains updates from PR for Commit 1 Commit 5 -> Contains updates from PR for Commit 3 的操作更改(或者,甚至可能不存在提交5,因为他首先请求对提交3进行更改然后简单地对其进行修改)

新结构(本地)如下所示

git rebase HEAD~5 -i

然后,开发人员执行以下pick 1111111 Commit 1 pick 2222222 Commit 2 pick 3333333 Commit 3 pick 4444444 Commit 4 pick 5555555 Commit 5 并输出以下内容

Commit 4

并挤压Commit 5pick 1111111 Commit 1 f 4444444 Commit 4 pick 2222222 Commit 2 pick 3333333 Commit 3 f 5555555 Commit 5

{{1}}

在重新定基后,将按照最初的意图进行3次提交。

缺点

如果其他开发人员从您的分支机构分支出来,那么在此之后,他/她需要根据提交哈希值的变化来重新建立分支机构的基础(如果开发人员知道如何进行这种重新设置,这不是不利的一面)。

专业人士

历史,实施地点和实施方式的透明度更高。 更紧凑的历史记录(无需进行较小的更改即可提交其他提交)

问题

您采用了哪种方法,您是否对上述观点有不同的看法? 您认为上述哪一种更好? 您是否知道任何外部链接(官方/非官方文档)告诉您使用一种方法或另一种方法。

结论

我个人(和我们的内部团队)使用方法2。

0 个答案:

没有答案