请输入提交消息以解释为何需要此合并,特别是如果它将更新的上游合并到主题分支中

问题描述 投票:366回答:8

我正在使用Git。我从一个远程仓库做了拉,并得到一条错误信息:

“请输入一条提交消息来解释为什么这种合并是必要的,特别是如果它将更新的上游合并到一个主题分支中。”

我尝试输入消息并按Enter但没有任何反应。

我怎么告诉Git /终端我输入了我的消息?

我在OS X上使用终端。

git macos git-merge git-commit git-commands
8个回答
917
投票

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

要解决这个问题:

  1. 按“我”
  2. 写下您的合并消息
  3. 按“esc”
  4. 写“:wq”
  5. 然后按回车键

34
投票

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

  1. 输入一些消息
  2. CtrlCO
  3. 键入文件名(例如“Merge_feature01”),然后按Enter键
  4. CtrlX退出

现在,如果你去.git,你会发现文件“Merge_feature01”,这实际上就是合并日志。


20
投票

tl;dr Set the editor to something nicer, like Sublime or Atom

这里很好用于您喜欢的编辑器的含义或找到更多用户友好。

根本问题是Git默认使用的编辑器对大多数人来说太不直观了:Vim。现在,不要误会我的意思,我喜欢Vim,虽然你可以把时间放在一边(比如一个月)to learn Vim并试着理解为什么有些人认为Vim是现存最伟大的编辑,有一种更快的修复方法这个问题 :-)

修复不是要记住神秘的命令,比如在接受的答案中,而是配置Git使用你喜欢和理解的编辑器!它就像配置这些选项中的任何一个一样简单

  1. git config设置core.editor(每个项目,或全局)
  2. VISUALEDITOR环境变量(这适用于其他程序)

我将介绍几个流行编辑的第一个选项,但GitHub也有一个优秀的guide on this for many editors

使用Atom

直接from its docs,在终端输入:git config --global core.editor "atom --wait"

Git通常会等待编辑器命令完成,但由于Atom立即分配到后台进程,这将不起作用,除非你给它--wait选项。

使用Sublime Text

出于与Atom情况相同的原因,您需要一个特殊的标志来向进程发出信号,告知它不应该分叉到后台:

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


14
投票

做就是了,

CTRL + X.

CTRL + C.

它会要求你保存文件,按Y,然后你就完成了。


5
投票

相反,您可以git CtrlZ并重试提交,但这次添加“-m”后面带引号的消息,然后它将提交而不提示您使用该页面。


3
投票

在这里,它要求您提供与您的合并连接的消息,以便将来参考为什么您完成此合并。

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

3
投票

由于您的本地存储库很少提交,git会尝试将您的遥控器合并到您的本地存储库。这可以通过合并来处理,但在您的情况下,也许您正在寻找rebase,即将您的提交添加到顶部。你可以这样做

git rebasegit pull --rebase

这是一篇很好的文章,解释了git pullgit pull --rebase之间的区别。

https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


1
投票

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

  • 第一步 - 按“我”
  • 第二步 - 在“#”之后输入您的消息
  • 第三步 - 按“esc”
  • 第四步 - 在最底部写“:wq”
  • 第五步 - 按“回车”

你已经完成了你的合并。然后你可以继续工作,或者拉到你当地后或创建一个新的分支。

© www.soinside.com 2019 - 2024. All rights reserved.