Git merge并不会产生编辑器

时间:2016-04-22 04:47:09

标签: git git-bash

我正在使用git bash on windows

$ git --version
git version 2.7.2.windows.1

我已将以下内容放入~/.gitconfig

[core]
    mergeoptions = --edit

目的是让我在执行合并时让git始终加载编辑器,这样我就可以检查消息了。我已经确认git正在读取并加载~/.gitconfig

$ git config --list | grep "edit"
core.mergeoptions=--edit

然而,当我将分支合并到master时,它不会加载编辑器,更糟糕的是,当我查看提交列表时,没有迹象表明合并甚至发生了!另一个分支肯定合并了。也许我做错了什么?以下是我使用的流程:

git checkout master
git checkout -- .
git clean -fd
git merge other-branch
git push origin master

1 个答案:

答案 0 :(得分:0)

一个简短的理论:你应该将git branches视为git提交图上的可移动标签(通常是树,但不一定)。因此,如果您与已经包含提交的分支进行合并,当前分支指向,git认为您只是希望将该另一个分支的所有更改包含到相关分支中,因此它只是移动指针(当前分支机构)到另一个分支机构。

您可以使用git merge --no-ff来阻止此类行为,但通常只会创建不必要的无用提交。

我建议你在图形工具合并之前检查你的提交的当前状态(gitk已经足够了但是还有很多),要清楚地了解什么到被执行。

查看git reflog输出也很有用,因为它会将所有更改记录到引用状态。