Gitflow使用疑问:完成feature分支时无编辑器弹出填写合并信息是何原因
问题原因及解决方案
核心原因
出现该差异的核心原因是**快进合并(Fast-forward merge)**的默认触发规则:
- 当你从
develop分支拉出feature分支后,如果develop分支没有产生任何新的提交,执行合并操作时Git会默认使用快进合并策略:直接将develop分支的指针移动到feature分支的最新提交节点,不会生成独立的合并提交,因此不会唤起编辑器填写合并信息,提交历史里也不会出现单独的合并操作痕迹。 hotfix分支完成时默认会触发非快进合并,因为hotfix是基于主干分支拉取,最终需要同时合并到主干和develop,这两个分支几乎都会有后续提交,无法触发快进合并,因此会生成合并提交、自动唤起编辑器。
配置层面的原因
Gitflow默认没有开启feature分支完成时的强制非快进合并配置,而hotfix、release分支的完成操作默认开启了强制非快进,这就是两类分支操作表现不一致的核心配置差异。
修复方案
临时解决方案(单次生效)
每次执行feature分支完成操作时添加--no-ff参数,强制生成合并提交:
git flow feature finish --no-ff feature_branch
永久解决方案(全局生效)
执行配置命令开启feature分支完成时的强制非快进合并:
git config --global gitflow.feature.finish.no-ff true
配置完成后所有git flow feature finish操作都会自动触发非快进合并,唤起编辑器填写合并信息,提交历史中也会留存对应的合并记录。
内容的提问来源于stack exchange,提问作者tipikae
相关产品推荐
相关产品推荐

