97

我正在mac(命令行)上学习github,每当我这样做时,我都会git pull origin master得到这个

# 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.
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
".git/MERGE_MSG" 7L, 293C

终端似乎被锁定并且不允许我立即输入任何内容,然后当它最终允许我输入文本时,它似乎无法识别 git 命令。

这是 git 中的错误还是我错过了什么?

4

8 回答 8

230

你在文本编辑器中,vim!它是一个模态文本编辑器,因此您需要:

  1. i进入插入模式
  2. 现在您可以键入您的消息,就像您在普通(非模态)文本编辑器中一样。
  3. 按下esc返回命令模式
  4. 然后键入:w后跟enter保存。
  5. 最后:q跟着enter退出了。
于 2012-12-26T20:57:02.937 回答
19

让它变得简单。

类型:wqenter

于 2016-01-20T08:47:20.113 回答
2

更简单的是先后 ESC : x(小写)。

于 2018-08-16T12:53:07.017 回答
2

根据您的描述,编辑器看起来像vim 。这个控制台只是告诉你为你想要的提交写一些消息,它是强制性的。

  • 只需键入i,您就会进入该-- INTER --模式,现在您可以写下您的评论了。

  • 写完后,按esc键盘上的键,您将进入命令模式。(见控制台底部

  • 现在通过写入:w然后enter按键来保存更改

编写 <code>:w</code> 命令

  • 您现在可以通过写字:q然后按enter键退出

编写 <code>:q</code> 命令

  • 欢呼!最后你回到主控制台。
于 2017-11-12T19:53:24.877 回答
1

运行此命令

git config --global core.editor "gedit"

在此文件中添加您的消息并保存。现在回去拉。

于 2017-06-14T10:44:23.573 回答
0

我通过执行以下步骤解决了这个问题

  1. 删除#MERGE_MSG#

    rm .git/\#MERGE_MSG#

  2. 删除MERGE_HEAD

    rm .git/MERGE_HEAD

另外,我明确地将 git 的编辑器设置为我熟悉vim的编辑器(你可以设置nano

`git config --global core.editor "vim"`
于 2017-04-13T10:24:19.363 回答
0

你可以做 git checkout --merge yourbranch

当前分支、您的工作树内容和新分支之间的三向合并已完成,您将位于新分支上。

于 2018-01-18T13:57:11.760 回答
0

当我们拼错某些东西时,通常会出现问题。
您更有可能对这个命令感兴趣:

git commit -m "message"

如果有问题,它可能会说类似

Your branch and 'origin/master' have diverged,
and have 2 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

并使用:

git pull

这应该导致:

Already up-to-date.

然后最好检查一下:

git status

并尝试再次推动:

git push
于 2018-04-28T10:18:32.617 回答