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

Hol*_*lly 16 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.
Run Code Online (Sandbox Code Playgroud)

更新

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

Sas*_*olf 23

使用该--no-edit选项,您可以在文档中阅读它.

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


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


如果你之前有一个git版本,1.7.8仍然有办法通过使用该env命令实现你想要的.

env GIT_EDITOR=: git merge <ref-you-want-to-merge>
Run Code Online (Sandbox Code Playgroud)

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

git config --global alias.merge-no-edit '!env GIT_EDITOR=: git merge'
Run Code Online (Sandbox Code Playgroud)

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

  • 正确的方法是执行 `GIT_MERGE_AUTOEDIT=no git merge &lt;branch&gt;` 而不是取消设置 `GIT_EDITOR` [参见此](https://git-scm.com/docs/merge-options#merge-options---no -编辑)。 (2认同)

Fla*_*che 12

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

export GIT_MERGE_AUTOEDIT=no
Run Code Online (Sandbox Code Playgroud)


Fre*_*zaq 7

您可以使用

git merge --no-edit
Run Code Online (Sandbox Code Playgroud)

这是手册页:

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

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