最近,在执行git pull
之后,Git开始生成我的文本编辑器,并要求输入合并提交信息。已经预填了一个提交消息,我只需要保存并关闭窗口即可完成拉取。
在过去,它会默默地合并,使用标准的提交消息(类似于Merge branch 'dev' of remote.com:/repo into dev
)。
我最近通过Homebrew将Git更新到1.7.11.3版本,但是无法想出其他可能更改此行为的原因。这是一种设置,还是有其他方法可以回到以前的方式?
--no-edit
标志来避免此行为,但是最好不要这样做。像任何提交一样,包括历史记录中的合并提交,都应该被构建得很好。您的历史记录应该毫无用处。为了将来使用方便,您可以执行以下操作之一来创建一个快捷方式:
编辑~/.gitconfig
文件并添加以下内容:
[core]
mergeoptions = --no-edit
或者在终端中执行以下命令:
git config --global core.mergeoptions --no-edit
git config --global core.mergeoptions
的输出。 - JacobFgit config core.mergeoptions --no-edit
。 - Simsek Mert首先,注意上面Christopher的回答中的警告。
然后,如果你仍想禁用自动合并提交消息编辑,请设置这个环境变量:
GIT_MERGE_AUTOEDIT=no
这个环境变量及其“no”设置在git merge文档页面上有记录。建议仅在需要非交互式合并的脚本中使用它,但当然可以将其设置为您Shell环境的一部分,以使其效果更加持久。
--no-edit
标志有何不同吗? - Alexander Mills--no-edit
标志必须在每次使用时在命令行上重复,因为它似乎不能像达拉斯·克拉克在这里描述的那样在设置中工作。设置环境变量是我知道的唯一使此设置生效的方法。 - emackey
git pull
;使用git merge --ff-only
命令。如果您确实要合并一个分支,请使用git merge --no-ff
命令。请注意,不要改变原意。 - Glyph--no-ff
标志。这将强制进行每次合并的合并提交,这可能会得到您想要的结果。然后,通过设置git config --global merge.ff false
来“使其永久化”。man git-config
应该可以为您提供更多详细信息。我没有简单的方法在这台机器上回退到v1.7.0.4,因此无法测试此建议。 - Christopher$EDITOR
设置而定,但如果你在 OSX 上使用原装的 git,它可能是一个叫做 'vi' 的程序。输入i
进入“插入”模式,然后输入你的消息。之后,按下ESC
并输入:wq
可以保存并退出。 - Christopher