git - 我们应该在 merge 到 master 后删除远程 Git 分支吗?

标签 git github version-control git-branch branching-and-merging

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

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

谢谢。

最佳答案

因此,有大量关于如何管理分支机构的文献,但实际上我认为这归结为您希望如何管理自己项目中的事物。话虽这么说,这里有一个来自 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. 将所有内容 merge 到功能分支中,并根据需要从那里分支以完成功能。
  6. 功能完成后,将功能分支 merge 回主分支。
  7. 标记并存档功能分支,以便您可以在需要时随时回滚。
  8. 清理本地开发人员分支。
  9. 从 master 为 Widget Y 创建一个新的功能分支。
  10. 重新开始整个过程​​。

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

希望这对您有所帮助。下面是一些额外阅读的链接:

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

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

How can I archive git branches?

关于git - 我们应该在 merge 到 master 后删除远程 Git 分支吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55615750/

相关文章:

github - 如何在 GitHub (readme.md) 上发布 OpenAPI 文档的最佳方式?

git reset --hard to commit 不起作用 - 提示 HEAD 落后了

svn - 如何优雅地取消 SVN 中文件的版本(不打扰团队成员)?

svn - 单独开发人员的最佳版本控制

macos - GitHub for Mac 不再安装 Git 消息

git - 更改代码时需要遵循的正确 GitHub 流程是什么?

git - 将所有内容存储在 Git 中,包括所有子模块?

git - 使用 SaltStack 设置环境

ruby-on-rails - 使用 ruby​​ on Rails 仅从 github api 中提取 Unresolved 问题,而不进行任何 pull 请求

objective-c - 对于单独的开发人员,哪个 SCM 系统可与 Xcode 4 一起使用?