使用GIT Flow完成一个功能分支

21

据我了解,创建特性分支的一个优点是可以轻松查看哪些大量提交已合并到开发分支中。

完成特性分支后,建议删除该分支,因为它不再需要进行开发。一旦删除该分支,图表是否仍会标注“feature/my-fancy-feature”分支和合并操作?

2个回答

23

完成一个特性分支后,建议删除该分支,因为它对于开发不再需要。

放弃和合并特性分支的区别:

这里的“完成”是一个含糊的表达。为了确保我完全回答你的问题,我认为你指的是以下两种情况之一:

(1) 如果您希望放弃feature/my-fancy-feature

git branch -d feature/my-fancy-feature

(2) 如果你的意思是要合并feature/my-fancy-feature分支:

git flow feature finish my-fancy-feature

"一旦分支被删除,图形界面上是否仍然标注有“feature/my-fancy-feature”分支和合并的痕迹?"

“快进合并”和“非快进合并”的区别

这要看情况(结果与git-flow无关)。git log不会给你具体的分支名称(例如feature/my-fancy-feature),它只会给你带有消息的提交记录。回顾一下“快进合并”和“非快进合并”的区别:

快进合并(所有在feature/my-fancy-feature中产生的提交历史将保留):

git merge

非快进合并(在feature/my-fancy-feature中的所有提交历史都将消失):

git merge --no-ff

请参考 Vincent Driessen 的文章中的以下插图:

enter image description here

更新

若要在 SourceTree 中启用非快进功能,请勾选下面的全局偏好选项,该选项位于 菜单栏->SourceTree->首选项->Git:

enter image description here

如需进一步说明,可以参考 SourceTree 的“帮助中心”中的以下摘录:

当合并时禁用快进行为,这意味着始终会创建一个显式的合并提交,而不管接收分支中是否有其他更改。如果您想在所有情况下都保持明确的独立开发线路,则此功能可能很有用。

希望对您有所帮助!


在SourceTree中,我选择了“完成功能”,我相信这相当于git flow feature finish my-fancy-feature。GUI似乎没有提供指定--no-ff的选项。但是,话虽如此,我认为提交历史记录比查看哪些分支提交来自更重要。最初,我以为使用功能分支的优点之一是即使完成了该功能,您仍然可以看到图形。 - Lea Hayes
1
@LeaHayes,SourceTree 确实支持--no-ff。请参考我上面更新的答案。如果按照我更新的答案中所述取消选中--no-ff选项,则图形将保留(默认情况下未选中)。 - melvynkim
我猜这一定是SourceTree Windows版本的限制。Git Flow: 完成特性: http://pbrd.co/18rHnsS 合并: http://pbrd.co/18rHuF2 看起来他们已经添加了“合并”的相反选项,但似乎这不是Git Flow的一部分。 - Lea Hayes
git 喜欢使用 git branch -d feature/my-fancy-feature 进行“丢弃”。如果该分支未合并到任何内容中,它将坚持使用大写字母 D。git branch -D feature/my-fancy-feature ... 我能得到一个饼干或什么吗? - anregen
我想指出一个可能存在于SourceTree和其他Git Flow客户端的潜在陷阱...如果一个功能分支有两个或更多提交,它们将按照左侧图表显示(git merge --no-ff),但是只有一个提交的功能分支将按照右侧图表显示(git merge plain)。这在查看历史记录时非常令人恼火,特别是在尝试按功能分支名称搜索时。 - AlwaysLearning

4
不,只有提交信息会保留;如果你想保留分支的名称,请确保将其包含在合并提交中或显式地使用相关名称标记合并提交。
最好的方法是不要担心在提交信息之外保留这些数据;当您合并功能分支时,您不应该关心该工作是在功能分支上完成的。

我选择了默认选项,尽管特性分支已经不存在,但似乎图表仍然被保留了下来。显然,分支的名称已被删除,但视觉表示仍然存在。我对此感到满意,因为提交是逻辑分组的。就像你说的那样,我可以明确地标记合并提交。我应该使用轻量级标签吗? - Lea Hayes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接