我们通常希望对功能分支使用no-ff合并,但在将本地存储库与上游存储库同步时,我们不希望进行合并提交。即,我们不希望在提取后看到合并提交。
当我以这种方式配置Git时:
git config merge.ff false
然后还拉动创建提交,例如“将原点/主合并为主”。如何避免呢?
修改:更多解释:
当我将本地功能分支合并到我的本地主服务器并且尚未推送时,那么当我执行pull时,我想获得合并提交“将origin / master合并为master”因为这是真正的合并。
然而,在我5分钟前推动的情况下,然后完成了没有然后拉了5分钟后,我不想要获得“将origin / master合并到master”,因为它只是一个空的,无用的提交(这里没有真正的合并)。
我们的项目默认merge.ff
为false
,是否可以切换到pull
来执行上述操作?或任何其他解决方法?
答案 0 :(得分:1)
避免它的方法是执行rebase而不是合并。 假设你在主分支上,你可以这样做:
git fetch
git rebase origin/master
... solve conflicts if any and finish the rebase
git push
你可以设置' git pull'使用以下命令执行fetch + rebase:
git config --global branch.autosetuprebase always
答案 1 :(得分:0)
听起来你想要git pull --rebase
。这只会在您描述的场景中进行任何重新定位,本地用户已经提交了尚未与上游世界共享的提交。
在这种情况下避免合并提交和一个rebase是不可能的,因为这两个谱系已经分歧了。但我们建议所有团队使用git pull --rebase
正是因为它将这些无用的本地合并保留在历史之外。