什么时候删除git功能分支?

bst*_*rre 78 git version-control branch

我不想最终有82个功能分支,所以我想知道一旦我将它合并到master就删除功能分支的潜在缺点是什么.

工作流程:

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
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?

lkr*_*der 89

我在合并后删除,但我总是这样做git merge --no-ff,以避免快速转发,以便分支历史在图表上可见.我想了解功能分支离开开发分支的位置以及它加入的位置:

在有或没有快进的情况下合并

这取自Vincent Driessen 成功的Git分支模型,这是一个非常好的工作流程,可以与git一起使用,我申请了大部分项目.


mas*_*onk 54

合并后删除是通常的方法.这就是git branch -d检查以确保分支在删除之前完全合并的原因.

我可以想到保留一个分支的几个原因:你可能想要保留它,以防你在生产时遇到错误,或者你可能想要一个历史记录.

在任何一种情况下,您都可以选择在删除分支之前标记分支的头部.标签就像一个分支,因为它是一个指向提交的指针,除了一些细微的差异:1)瓷器通常不会在探测命令中显示标签,如git show-branch或tab-auto complete in checkout,2)检查一个会使你进入一个分离的(非参考)HEAD 3)你可以留下一个" 标记消息 ",这会导致标记像提交一样被保存为对象存储中的对象.

这样您就可以保留历史记录,如果您确实需要进行错误修复,我建议您只需为修补程序创建一个新的分支.


Kar*_*ldt 7

我可以想到为什么你可能想要保留一个功能分支的两个原因:

  • 有可能会因为上游的更多工作而被踢回去.
  • 其他开发人员可能想要该功能,而不需要其他所有功能.

在实践中,合并后删除的大部分时间都很好.


Fiz*_*han 6

典型的工作流程将是

 // 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
Run Code Online (Sandbox Code Playgroud)