Git快进,但非快进合并?

时间:2015-05-12 07:49:18

标签: git merge

我们通常希望对功能分支使用no-ff合并,但在将本地存储库与上游存储库同步时,我们不希望进行合并提交。即,我们不希望在提取后看到合并提交。

当我以这种方式配置Git时:

git config merge.ff false

然后还拉动创建提交,例如“将原点/主合并为主”。如何避免呢?

修改:更多解释:

当我将本地功能分支合并到我的本地主服务器并且尚未推送时,那么当我执行pull时,我想获得合并提交“将origin / master合并为master”因为这是真正的合并。

然而,在我5分钟前推动的情况下,然后完成了没有然后拉了5分钟后,我想要获得“将origin / master合并到master”,因为它只是一个空的,无用的提交(这里没有真正的合并)。

我们的项目默认merge.fffalse,是否可以切换到pull来执行上述操作?或任何其他解决方法?

2 个答案:

答案 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正是因为它将这些无用的本地合并保留在历史之外。

相关问题