我正在使用Git。我从远程回购中提取了一个错误消息:
请输入提交消息以解释为什么需要这种合并,
特别是如果将更新后的上游合并到主题分支中时。
我尝试键入一条消息并按,Enter但是什么也没有发生。
我如何告诉Git / Terminal我已经完成了输入信息?
我在OS X上使用Terminal。
我正在使用Git。我从远程回购中提取了一个错误消息:
请输入提交消息以解释为什么需要这种合并,
特别是如果将更新后的上游合并到主题分支中时。
我尝试键入一条消息并按,Enter但是什么也没有发生。
我如何告诉Git / Terminal我已经完成了输入信息?
我在OS X上使用Terminal。
Answers:
这不是Git错误消息,而是git使用默认编辑器的编辑器。
要解决这个问题:
vi
或vim
。
Vi
其实这不是错误!这意味着您应该输入一些消息来标记此合并。我的操作系统是Ubuntu 14.04,如果使用相同的操作系统,则只需执行以下操作:
输入一些讯息
CtrlCO
键入文件名(例如“ Merge_feature01”),然后按 Enter
CtrlX 退出
现在,如果您转到.git并找到文件“ Merge_feature01”,则实际上是合并日志。
nano
或pico
),不适用于OS X设置。它决不能泛化,也无法提供其工作原理的见解,因此@AdrianCarr留下了评论。现在有更好的答案。
在这里,nice表示您喜欢的编辑器的含义,或者使用户更加友好。
潜在的问题是,默认情况下,Git使用的编辑器对于大多数人来说太直观了:Vim。现在,请不要误会我,我爱Vim,虽然您可以花一些时间(例如一个月)来学习Vim,并尝试理解为什么有些人认为Vim是现有的最出色的编辑器,但是有一种更快的方法解决此问题的方法:-)
解决的办法不是像已接受的答案那样存储加密命令,而是将Git配置为使用您喜欢并理解的编辑器!就像配置这些选项中的任何一个一样简单
core.editor
(每个项目或全局)VISUAL
或EDITOR
环境变量(此作品为其他程序以及)我将介绍几个受欢迎的编辑器的第一个选项,但是GitHub也为许多编辑器提供了出色的指南。
直接从其文档中,在终端中输入以下内容:
git config --global core.editor "atom --wait"
Git通常会等待编辑器命令完成,但是由于Atom立即分叉到后台进程,因此除非您提供此--wait
选项,否则它将无法正常工作。
出于与Atom案例相同的原因,您需要一个特殊的标志来向进程发出信号,表明它不应派生到后台:
git config --global core.editor "subl -n -w"
在这里,它要求您提供一条与您的合并相关的消息,以备将来参考,以了解执行此合并的原因。
press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter
由于本地存储库很少提交,因此git尝试将您的远程合并到本地存储库。这可以通过合并来处理,但是在您的情况下,也许您正在寻找基准,即将提交添加到顶部。你可以用
git rebase
要么 git pull --rebase
这是一篇很好的文章,解释了git pull
&之间的区别git pull --rebase
。
https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/
这不是Git错误消息,而是编辑器git使用您的默认编辑器。
要解决这个问题:
说明
您记住的方式是“ i”代表“插入”,“ esc”代表插入的出口,“:wq”代表“写入”和“退出”。
这不是错误。您必须为此合并添加一个按摩师
解决这个问题:
我发现错误是因为我不熟悉git,因此必须检查输入的语法是否正确
我犯了一个错误并写了
git commit
并得到相同的错误
采用
git commit -m 'some comment'
而且您不会看到带有