如何避免合并提交地狱在GitHub / BitBucket

我们最终会得到很多提交,像这样在我们的repo:

Merge branch 'master' of bitbucket.org:user/repo

每当开发人员将他/她的本地分支同步到顶级仓库时,就会发生这种情况。

有没有反正,避免这个合并提交地狱,使所有的repo日志?在某种方式启动拉取请求时,可以避免它们吗?

我知道我可以做git rebase如果这是在我的本地VM完成,在GitHub / BitBucket UI有什么等价?

你怎么做的?

合并前的Rebase功能分支

如果要避免合并提交,您需要确保所有提交都是快进。你这样做,通过确保你的特性分支重定位到你的开发线,然后合并像这样:

git checkout master
git checkout -b feature/foo

# make some commits

git rebase master
git checkout master
git merge --ff-only feature/foo

Rebase还有很多标志,包括与-i标志的交互重载,但是如果你尽可能简单地保持所有的分支历史记录,你可能不需要它。

使用–ff-only标志

除了重基础之外,使用–ff-only标志将确保只允许快进提交。如果它将是合并提交,则不会提交提交。 git-merge(1)手册页说:

–ff-only

Refuse to merge and exit with a non-zero status unless the current
HEAD is already up-to-date or the merge can be resolved as a
fast-forward.

http://stackoverflow.com/questions/16358418/how-to-avoid-merge-commit-hell-on-github-bitbucket

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何避免合并提交地狱在GitHub / BitBucket