在GitHub上发起一个拉取请求后,你会怎样处理你的分支?

51

我的团队正在尝试使用GitHub拉取请求进行代码审核。我想知道结束后该怎么处理分支?我认为你可能希望删除该分支,但由于GitHub会隐藏已合并到当前分支的分支,所以保留它似乎更好。

只是好奇您对此的最佳实践有什么看法。

3个回答

36

我们使用的经验法则(在 Stack Overflow 的某个地方)是“分支用于工作,标签用于历史记录”。

每当一个分支被合并(很可能合并到主分支),我们使用带有前缀“branch”(例如 branch-topic)的分支名称标记合并点。然后删除该分支。如果需要在分支点处恢复工作,我们有标签来进行操作。

当然也有例外情况。我们有长期运行的分支,用于各种持续性工作。但一般来说,主题分支在合并后会被删除。

顺便提一下,这些合并总是使用

merge --no-ff <branch>

这将确保有一个合并点和合并发生的记录。


2
每个分支都有一个标签有点多余吗?默认的合并消息中已经包含了分支名称? - onionjake
分支名称被记录在缺陷系统或其他任何地方都可以。查看更改就像检出合并分支的标签一样容易。 - Bill Door
我们如何正确删除分支? - alper

27
请注意,自2013年4月10日起,“重新设计的合并按钮” (Redesigned merge button),分支将被删除:

new merge button

  

在你合并后删除分支也变得更加简单。
   我们不再要求你确认删除步骤,而是立即在您删除时删除该分支,并提供一个方便的链接以在需要时恢复该分支

这证实了在拉取请求合并后删除分支的最佳做法。

我正要问这个问题,我的SO-fu足够好,可以找到这个旧的问题和答案。然而,为了严谨起见,关于具体细节,@bill-door建议将分支合并作为“标记”,类似于SVN中仅记录合并(但目的不如SVN那么具体)。我认为你是建议在所有更改都在主分支上并且获取/拉取应该将它们带入后,只需本地删除分支*而不进行合并,即git branch -D topic-branch。正确吗? - javafueled
2
@javafueled 我同意。您还可以在PR分支上看到删除分支按钮,如https://help.github.com/en/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request - VonC
Github的删除分支是讨论的远程端,但我正在考虑本地端。 - javafueled
1
@javafueled 一旦在远程端完成,您可以轻松地在本地修剪它们:https://dev59.com/g2Ml5IYBdhLWcg3w966L#34969746 - VonC

16

我通常会删除已经合并到master的分支。毕竟,Git分支是指向提交的指针,而该提交现在已经在另一个分支的历史记录中可用,因此我不再需要该分支。(您可以通过查看合并提交的父提交来重新创建该分支。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接