什么时候删除一个git特性分支?

我不想结束82个function分支 ,所以我想知道什么是潜在的缺点是简单地删除function分支,只要我把它合并到主。

工作stream程:

git co -b feat-xyz hack hack git ci hack some more git ci git co master git merge feat-xyz smoke test git br -d feat-xyz 

这里有什么问题?

合并后删除通常的方法。 这就是为什么git branch -d检查以确保分支完全合并,然后删除。

有几个原因可以让我想到保留一个分支:你可能想要坚持下去,以防一旦有错误返回生产,或者你可能需要一个历史logging。

无论哪种情况,您都可以select在删除分支之前标记分支的头部。 标签就像一个分支,它是一个指向提交的指针,除了一些细微的差别:1)瓷器通常不会在探索性命令中显示标签,如git show-branch或tab-auto在结帐时完成,2)检查一个出你把你在一个分离的(非参考)头3)你可以留下一个“ 标记消息 ”,这导致标签被保存为对象存储对象像一个提交。

这样你就保留了历史logging,如果你需要修复bug,我build议你只需要创build一个新的分支来解决修复问题。

我合并后删除,但我总是做一个git merge --no-ff ,以避免快进,使分支历史logging在graphics上可见。 我喜欢有function分支从开发分支出发的地方的历史,

合并或不合并快进

这是从Vincent Driessen的一个成功的Git分支模型中取得的,这是一个非常好的工作stream程,可以用于我的大部分项目。

我可以想出两个原因,为什么你可能想保留一个function分支:

  • 上游会有更多的工作被踢回去。
  • 其他开发人员可能想要这个function,而不需要主人的一切。

在实践中,合并后大部分时间删除就好了。

典型的工作stream程将是

  // Create new branch $ git checkout -b myfeature // and then do some changes and commit them // Switch to master branch $ git checkout master // Merge myfeature to master. --no-ff will always keep branch information. $ git merge --no-ff myfeature // Delete myfeature branch $ git branch -d myfeature // Push the changes $ git push origin master 

我认为这是典型的工作stream程(合并后删除)

编辑所以,而不是合并,至less对于短期的分支机构,我认为这个想法是把他们重新发给主人。 那么你最终会得到一个线性变化历史,整个分支变成主干的一部分。 在这种情况下,你有所有的变化,所以你显然不需要副本。