version-control - 最佳实践 : To clean or not to clean old branches

标签 version-control

我曾在不同的团队工作过,在一个团队中,人们倾向于在合并旧分支后立即清理它们。在其他团队分支永远停留。删除/保留旧分支有什么好处?这取决于我们使用的源代码控制系统吗? (在我的例子中 - SVN)。

最佳答案

答案可能取决于您使用的版本控制系统。例如,如果您使用 Git,那么您不应该尝试删除任何分支,因为分支系统以及处理提交和推送历史记录的方式(取决于分支)与 SVN 截然不同。

但是,一般来说,我倾向于保留旧分支,而不是删除它们。在我工作过的专业场所,他们也倾向于保留分支机构。在我看来,保留分支不仅可以为您提供代码历史记录,还可以:

  • 失败的尝试历史记录。您稍后可能会考虑做一些以前失败过的事情。如果保留失败的分支,您将能够理解它最初失败的原因。
  • 这些分支中可能存在良好的可重用代码。有时,当主要稳定分支结束丢弃大量代码时,专门为此分支开发的良好代码也可能最终被扔进垃圾箱。然而,其中一些代码可能在开发后期阶段的其他情况下有用。那么,为什么要重新发明轮子呢?
  • 衍生项目。在大型项目中,有时分支包含的功能并未进入最终产品。从这些功能中,可能会产生一些新的想法,这些想法本身可以形成一个独立的项目。
  • 证明。让我们面对现实吧,在公司中,尤其是大公司中,在提交代码时需要考虑管理方面的问题。例如,在查看代码历史记录时,您可以立即看到谁提交了错误或良好的代码,并避免误解。我知道这听起来很愤世嫉俗,但有时它可以为人们省去很多麻烦。

总的来说,它的历史。为什么要删除那些让你想起迄今为止的开发路径的分支呢?我怀疑它会对磁盘空间产生重大影响(至少在大多数情况下。在其他情况下,它可能会产生很大的影响,但公司应该在空间问题真正成为问题之前解决它)。就工作而言,分支机构代表了数千个工时。删除它们就好像你扔掉了这一次。

至于丢弃分支,除了节省空间之外,我想不出任何原因。

关于version-control - 最佳实践 : To clean or not to clean old branches,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586042/

相关文章:

git - 没有共同祖先的分支

visual-studio - TFS 回滚与 "Get This Version"

visual-studio-2012 - 究竟什么是源代码控制?

Git 重命名文件。历史记录在 cmd 行上可用,但在 github 界面上不可用?

xcode - 使用 xcode,如何区分文件的工作副本和存储库中的最新提交?

version-control - 从 ClearCase 迁移到 Mercurial : your top tips?

jenkins - 如何在具有一个或多个 SCM 的 Jenkins 工作流程中找到罪魁祸首或提交者

git - 使用 Vincent Driessen 的分支模型在 git 存储库中进行 Maven 版本控制

php - 由于网站所有者进行实时更改,因此在两个目录之间执行 "git diff"

Git - 如何更新旧提交