我们在我们的 repo 中有很多这样的提交:
Merge branch 'master' of bitbucket.org:user/repo
每当开发人员将他/她的本地分支同步到顶级存储库时,就会发生这种情况。
有没有办法避免这种 merge 提交 hell 使所有 repo 日志困惑?在以某种方式发起 pull 请求时可以避免它们吗?
我知道我可以执行 git rebase,如果这只在我的本地 VM 中完成,GitHub/BitBucket UI 中是否有任何等效项?
你们是怎么做到的?
最佳答案
merge 前对特征分支进行 rebase
如果你想避免 merge 提交,你需要确保所有提交都是快进的。您可以通过确保您的功能分支在 merge 之前干净地 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
标志的交互式 rebase ,但如果您希望尽可能简单并希望保留所有内容,则可能不需要它 merge 的分支历史。
使用--ff-only
标志
除了 rebase 之外,使用 --ff-only
标志将确保只允许快进提交。如果改为 merge 提交,则不会进行提交。 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.
关于git - 如何避免 GitHub/BitBucket 上的 merge 提交 hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16358418/