首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时删除版本控制分支?

何时删除版本控制分支?
EN

Stack Overflow用户
提问于 2014-10-01 16:21:41
回答 3查看 240关注 0票数 0

我们目前正在使用Git,我们的一个开发人员希望从我们的存储库中删除旧的分支。提出这一要求的原因是“持家”。

我来自SVN背景,不熟悉Git,但根据我在SVN方面的经验,您从不删除分支,这是从第一天开始的经验规则。

删除SVN中的分支没有任何好处,因为它的大小相对较小,而且它可能包含重要的提交/合并信息,如果删除这些信息将完全丢失。而且,从家庭管理的角度来看,如果这个分支太可怕,无法观察,它总是可以被移动到另一个位置,远离常规的工作流程。

有没有人有任何具体的理由从现代版本控制系统中删除分支?

EN

回答 3

Stack Overflow用户

发布于 2014-10-01 16:42:53

根据关于S.O问题的公认答案,"Git -何时删除分支机构":

代码语言:javascript
复制
You can safely remove a branch with git branch -d yourbranch. 
If it contains unmerged changes (ie, you would lose commits by deleting the branch), 
git will tell you and won't delete it.

然而,另一位作者继续说:

代码语言:javascript
复制
 the disadvantage of deleting branches is that you will break any hyperlinks 
 to those branches on GitHub. 

我在题为"为什么我不喜欢功能分支“的文章中讨论了讨论删除分支的缺点的最大论点之一:

代码语言:javascript
复制
 If feature branches are deleted once they are merged into master, where do bug 
 fixes go? On a new feature branch or on master? There will no longer be an easy way 
 to find a list of the commits that went into a feature.

文章Git :清理多余的分支展示了如何自动删除分支,并使其成为一个更快的过程,如果您选择这样做。

如果你有任何问题请告诉我!

票数 5
EN

Stack Overflow用户

发布于 2014-10-01 17:03:57

这个答案是指颠覆。

我对删除Subversion中过时的分支和标记没有任何遗憾。它使/tags/branches目录更加干净。而不是数以百计的分支和标签,只有几十个可能出现。

如果一个分支不再用于主动开发,而且没有人对代码感兴趣,那么为什么不删除它呢?如果您的代码有标记,没有客户正在使用,也没有开发人员不再引用,为什么不删除它呢?

我通常有一些时间基础的分支机构。一年都没给他们做过?他们是被删除的候选人。如果开发人员对代码不再感兴趣,那就退出吧。

在没有永久删除任何内容的Subversion中,您总是可以将其取回:

假设我将标记删除到我们代码的1.6版。突然,一群审计师出现了,要求检查代码的特定版本。我可以跑:

代码语言:javascript
复制
$ svn log -q -v http://server/repo/tags | less

当我删除那个标签时:

代码语言:javascript
复制
------------------------------------------------------------------------
r76229 | smith | 2011-09-01 11:26:47 -0400
Changed paths:
   D /tags/1.6

1.6个标签在76229版本中被删除了,所以我知道标签在我的存储库的第76228版中。我可以还原那个标签:

代码语言:javascript
复制
$ svn cp -r76228  http://server/repo/tags/1.6@76228 http://server/repos/tags/1.6

如果我只想看到这段代码,我可以在不删除标记的情况下检查它:

代码语言:javascript
复制
$ svn co -r76228  http://server/repo/tags/1.6@76228

现在,审计师可以开始工作,缠着开发人员,让我分崩离析。

票数 4
EN

Stack Overflow用户

发布于 2014-10-01 16:40:14

Git的分支机构(一般来说)在合并后并不重要。只有当它们指向唯一的提交,不能通过任何其他方法到达时,它们才是有用的。

Git甚至提供了git branch --merged,它被记录为

代码语言:javascript
复制
--merged is used to find all branches which can be safely deleted,
       since those branches are fully contained by HEAD.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26145958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档