Answers:
正如Ben Collins所提到的,没有-m "..."
用于键入内联提交的参数(这通常是一个坏主意,因为它鼓励您简短一点),打开的这个“大文本文件”是一个用于在其中键入提交消息的窗口。
通常,建议在第一行写一个摘要,跳过一行,然后在下面写更详细的注释。这有助于执行诸如通过适当的主题行通过电子邮件发送提交消息以及正文中所做更改的完整列表的电子邮件程序。
除了更改EDITOR
shell变量,还可以通过在~/.gitconfig
文件中添加其他行来更改使用的编辑器:
[core]
editor = emacs
excludesfile = /Users/will/.gitignore
这第二条线实际上已经无关,与你的问题,但我觉得它确实有用,所以我可以填充我的~/.gitignore
文件,所有这些文件类型,我知道我将永远,永远,要提交到存储库。
正在打开的文本文件是当前提交操作的摘要。git commit将您放入该文件,因此您可以在文件顶部添加提交消息。添加消息后,只需保存并退出此文件。
此命令上还有一个“ -m msg”开关,允许您在命令行上添加提交消息。
如果您使用的是Mac OS X并使用BBEdit,则可以将其设置为提交消息的首选编辑器:
git config --global core.editor "bbedit -w"
完成编辑后,保存并关闭文件,git会将其用于注释。
假设您的编辑器默认为vi / vim,您可以通过输入以下内容退出提交消息编辑器:
:x
这将保存并退出提交消息文件。然后,您将返回正常的git命令部分。
更多vi命令:http :
//www.lagmonster.org/docs/vi.html
esc
打入命令模式,然后再键入:x
保存和退出。
当您创建一个新的提交时,git会启动一个文本编辑器并将一些内容写入其中。
使用此文本编辑器,目的是让您编写将与您新创建的提交相关联的提交消息。
完成此操作后,保存并退出文本编辑器。Git将使用您编写的内容作为提交消息。
提交消息具有特定的结构,如下所示:
提交消息的第一行用作消息头(或标题)。提交标头的首选长度少于40个字符,因为这是github在截断给定存储库之前,在给定存储库的“提交”选项卡上显示的字符数,有些人会感到恼火。
编写标题时,通常不需要为首个单词使用大写的现在时动词。
一条换行符描述消息的标题和正文。
身体可以随心所欲。提交所引起的更改的概述是合理的。一些第三方应用程序使用的信息包括提交消息的主体,以引发各种异常(我想说Gerrit和Pivotal Tracker,仅举两个)。
这是一个简短而有趣的示例。前导#
表示评论。
Gitignore index.pyc
Ignore gunicorn generated binary file
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch dev
# Your branch is ahead of 'origin/dev' by 10 commits.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: .gitignore
#
托瓦尔兹先生在这里对做出好的承诺表示意见。
而这里 Tpope做同样。
如其他几个答案所述,在命令行上更改默认编辑器是一种做法。
对于我的偏好:
git config --global core.editor "vim"
我很困惑,因为我一直试图在VIM中的:w之后输入文件名。那不会触发提交。相反,我一直收到一条消息“由于空提交消息而中止提交”。不要在:w之后放置文件名。:w默认情况下将文件保存到.git / COMMIT_EDITMSG。然后:q退出以完成提交。您可以使用git log查看结果。
现在,我已将编辑器更改为emacs,一切正常。
但是在我设置它之前,“ git commit -a”确实打开了gedit,但也立即以“由于空提交消息而中止提交”结束。从gedit保存文件无效。用“ git config --global core.editor” gedit“”显式设置编辑器的结果相同。
emacs没什么问题,但是出于好奇,为什么这不适用于gedit,有什么方法可以使它工作?
谢谢。
git config --global core.editor "gedit -s"
对于那些使用OS XI的用户来说,此命令可以很好地工作:
git config --global core.editor "open -t -W"
这将强制git打开默认的文本编辑器(在我的情况下为textedit),然后等待您退出应用程序。请记住,在提交通过之前,您需要先“保存”然后“退出” textedit。您还可以使用其他一些命令,如本页所述:
您还可以尝试git config --global core.editor "open -e -W"
是否要让git始终打开textedit而不管默认编辑器是什么。
--global
更改默认值?