请输入提交消息以解释为什么需要这种合并,特别是如果将更新后的上游合并到主题分支中时


515

我正在使用Git。我从远程回购中提取了一个错误消息:

请输入提交消息以解释为什么需要这种合并,
特别是如果将更新后的上游合并到主题分支中时。

我尝试键入一条消息并按,Enter但是什么也没有发生。

我如何告诉Git / Terminal我已经完成了输入信息?

我在OS X上使用Terminal。


3
看来您的GIT已配置为打开预配置的模板,并且该模板正在通过默认编辑器(vi / vim)打开。
舜亚2013年

中止此合并并尝试使用git pull --rebase。
Ankush Jain

3
形成我的“ Shift ZZ”解决了该问题
papacico

Answers:


1188

这不是Git错误消息,而是git使用默认编辑器的编辑器。

要解决这个问题:

  1. 按“ i”(i表示插入)
  2. 写您的合并消息
  3. 按“ ESC”(转义)
  4. 写“:wq”(写并退出)
  5. 然后按回车

7
好的,但这是假设他的编辑器是vivim
加布里埃尔·彼得罗内拉

105
这真是太复杂了
Connor Leech

91
主我讨厌Vi
Sobiaholic 2014年

153
如果对任何人有帮助,您记住的方式是“ i”代表“插入”,“ esc”代表插入的出口,“:wq”代表“写入”和“退出”。
Josh Beam

82
BA可能还是↑↑↓↓←→→←→BA
Wesley Smith

39

其实这不是错误!这意味着您应该输入一些消息来标记此合并。我的操作系统是Ubuntu 14.04,如果使用相同的操作系统,则只需执行以下操作:

  1. 输入一些讯息

  2. CtrlCO

  3. 键入文件名(例如“ Merge_feature01”),然后按 Enter

  4. CtrlX 退出

现在,如果您转到.git并找到文件“ Merge_feature01”,则实际上是合并日志。


6
我不知道有人会知道这个吗?它是如何工作的,真是太奇怪了。感谢您的回答。
阿德里安·卡尔

@ScottyBlades为什么应该在地球上?这个问题标记为osx,这个答案涉及Ubuntu如何为Git设置完全不同的设置(使用nanopico),不适用于OS X设置。它决不能泛化,也无法提供其工作原理的见解,因此@AdrianCarr留下了评论。现在有更好的答案。
oligofren

27

tl; dr将编辑器设置为更好的名称,例如Sublime或Atom

在这里,nice表示您喜欢的编辑器的含义,或者使用户更加友好

潜在的问题是,默认情况下,Git使用的编辑器对于大多数人来说太直观了:Vim。现在,请不要误会我,我爱Vim,虽然您可以花一些时间(例如一个月)来学习Vim,并尝试理解为什么有些人认为Vim是现有的最出色的编辑器,但是有一种更快的方法解决此问题的方法:-)

解决的办法不是像已接受的答案那样存储加密命令,而是将Git配置为使用您喜欢并理解的编辑器!就像配置这些选项中的任何一个一样简单

  1. git config设置core.editor(每个项目或全局)
  2. VISUALEDITOR环境变量(此作品为其他程序以及)

我将介绍几个受欢迎的编辑器的第一个选项,但是GitHub也为许多编辑器提供了出色的指南

使用Atom

直接从其文档中,在终端中输入以下内容: git config --global core.editor "atom --wait"

Git通常会等待编辑器命令完成,但是由于Atom立即分叉到后台进程,因此除非您提供此--wait选项,否则它将无法正常工作。

使用崇高文字

出于与Atom案例相同的原因,您需要一个特殊的标志来向进程发出信号,表明它不应派生到后台:

git config --global core.editor "subl -n -w"


Vim不需要一个月。它需要两天的时间,而且您永远不会忘记,只要您保留不时需要的便捷备忘单。
user264431

22

做就是了,

CTRL + X

CTRL + C

它将要求您保存文件,按Y,然后完成。


这是默认编辑器为“ pico”或“ nano”的情况。如果默认编辑器为vim,则应使用上述注释。
JacKeown

7

在这里,它要求您提供一条与您的合并相关的消息,以备将来参考,以了解执行此合并的原因。

press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter

6

取而代之的是,您可以git并重CtrlZ试提交,但是这次添加“ -m”,并在其后加上引号,然后它将提交而无需在该页面提示您。


3
大声笑这肯定会解决OP的问题。 git commit -m 'I did blah'
詹姆斯·莱

我在Linux终端上有git版本1.7.11.4,尽管我给了git commit -m“ message”或git commit --message“ message”的事实,但编辑器仍会不时弹出请求消息。有人知道为什么忽略“ -m”开关吗?
pglpm


0

如何通过合并在android studio终端中添加消息。这适用于mac用户。

  • 第一步-按“ i”
  • 第二步-在“#”之后输入您的消息
  • 第三步-按“ ESC”
  • 第四步-在最底端输入“:wq”
  • 第五步-按“ Enter”

合并完成后,您就可以继续将其拖到本地或创建新分支了。


0

这不是Git错误消息,而是编辑器git使用您的默认编辑器。

要解决这个问题:

  1. 按“ i”
  2. 写您的合并消息
  3. 按“ ESC”
  4. 写“:wq”
  5. 然后按回车

说明

您记住的方式是“ i”代表“插入”,“ esc”代表插入的出口,“:wq”代表“写入”和“退出”。


0

这不是错误。您必须为此合并添加一个按摩师

解决这个问题:

  1. 按“ i”插入您的按摩
  2. 写你的按摩
  3. 按“ ESC”
  4. 写“:wq”(写和退出以保存消息并退出)
  5. 按“输入”

-1

我发现错误是因为我不熟悉git,因此必须检查输入的语法是否正确

我犯了一个错误并写了 git commit

并得到相同的错误

采用 git commit -m 'some comment'

而且您不会看到带有

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.