从打开文本编辑器停止git merge

时间:2014-07-07 11:06:11

标签: git merge

每次运行git merge命令时,都会打开文本编辑器,要求我添加额外的消息。

如何阻止git打开编辑器&简单地合并我的分支?因为当它打开编辑器时它不会完成合并,即使我添加了额外的消息&保存文件,终端只挂在我的git merge命令上。

Merge branch 'my-feature-branch' into main-development

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
# 
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.

更新

Zeeker的答案是正确的但我在linux中遇到了sublime text 2的问题。即使我保存了&关闭了终端挂起的编辑器,我相信这是因为编辑器中的最后一个项目文件夹是在使用git merge文件时打开的。我从崇高中删除了项目,打开了另一个崇高的窗口,关闭了原来的崇高窗口&然后关闭了新的崇高窗口。在此之后,一旦我运行了giy merge命令&没有项目打开的新的崇高窗口&一旦我关闭了执行的git merge命令。

3 个答案:

答案 0 :(得分:22)

使用--no-edit选项,您可以在documentation

中阅读相关内容

请注意,使用默认消息是discuraged,因为它没有提供有关此合并引入的更改的有用信息。


旁注:要继续合并,您可能需要关闭编辑器。


如果你有1.7.8之前的git版本,仍然有办法通过env命令实现你想要的。

env GIT_EDITOR=: git merge <ref-you-want-to-merge>

为了便于使用,您可以创建别名。

git config --global alias.merge-no-edit '!env GIT_EDITOR=: git merge'

然后可以使用git merge-no-edit <ref-you-want-to-merge>

答案 1 :(得分:6)

您可以使用

git merge --no-edit

这是手册页:

  

- 编辑,-e, - no-edit              在提交成功的机械合并之前调用编辑器以进一步编辑自动生成的合并消息,以便进行   用户可以解释并证明合并。 --no-edit选项可用于接受自动生成的消息(通常不鼓励这样做)。如果, - 编辑(或-e)选项仍然有用   您正在从命令中使用-m选项提供草稿消息   行,并希望在编辑器中编辑它。

     

较旧的脚本可能取决于不允许用户编辑合并日志消息的历史行为。他们会看到一个   编辑器在运行git merge时打开。使其更容易调整              这些脚本更新了行为,环境变量GIT_MERGE_AUTOEDIT可以在它们的开头设置为no。

答案 2 :(得分:1)

将以下行添加到您的.bash_profile.bashrc.zshrc文件中:

export GIT_MERGE_AUTOEDIT=no