我们应该在合并到 master 后删除远程 Git 分支吗?

Should we remove a remote Git branch after merging to master?

我想知道在合并到 master 后删除你的分支是否更好,或者我们是否应该在整个项目期间继续在同一个单独的分支上工作。

即如果我们是小组中的 3 名成员,我们每个人都创建自己的分支并在项目期间进行工作。在我们开始做其他事情之前,我们都在 master 分支中提交并拉取。这样,我们就知道谁在哪个分支上工作,我们不会混淆。

谢谢。

你问题的正确答案是:这取决于你想做什么。继续在您与 master 合并的分支上工作是没有问题的。如果你不需要它,你也可以简单地删除它! 但是,在您描述的设置中,我完全同意 如果 您在项目的不同部分工作,那么创建不同的分支并保留 master 分支可能是安全的为小组尽可能地清洁和更新。

因此,有大量关于如何管理分支机构的文献,但实际上我认为这归结为您希望如何在自己的项目中管理事物。话虽这么说,这里有一个 link 来自 Atlassian 的分支工作流,可以给出一个不错的意见:

https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow

现在,说了那么长的文章,如果你们都直接提交给 master 是有意义的,我认为这没有任何问题。我个人致力于精通我从事的几个小项目,但总的来说,这是我遵循的流程:

  1. 为项目创建master分支
  2. 确定您要处理的功能,我们称之为 Widget X
  3. 为此创建一个功能分支,将其命名为 feature-widget-x
  4. 所有致力于此功能的开发人员都应该根据他们正在从事的工作创建自己的分支。例如,如果我正在处理错误,我会从 feature-widget-x 分支并创建一个名为 michael-error-handling.
  5. 的分支
  6. 将所有内容合并到功能分支中,并根据需要从那里分支以完成功能。
  7. 功能完成后,将功能分支合并回主分支。
  8. 标记并存档功能分支,以便您可以在需要时随时回滚。
  9. 清理本地开发者分支。
  10. Widget Y 的 master 创建一个新的功能分支。
  11. 重新开始整个过程​​。

我想指出,这正是我做事的方式,并且在实施它的公司中对我来说是成功的。对于您的三人小组来说,这可能是也可能不是最佳解决方案,但这由您决定。如果你真的按照这个计划去做,它的好处是能够根据需要回滚到一个特性,并且唯一持续存在的分支是特性分支和主分支。比查看单个分支上的提交日志更容易确定何时应该回滚到提交是否中断。

希望这对您有所帮助。下面还有一些 link 可供额外阅读:

https://git-scm.com/docs/git-archive

https://git-scm.com/book/en/v2/Git-Basics-Tagging

How can I archive git branches?