如何将默认消息从git传递给编辑器?

时间:2015-10-28 11:06:51

标签: git

通常,当我执行git commitgit rebase -i时,core.editor会以默认消息启动。

e.g。)

subject line

what happened

[ticket: X]
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
# modified:   lib/test.rb
#
~
~
".git/COMMIT_EDITMSG" 14L, 297C

但在我的环境中,core.editor启动,不带任何默认消息(空白)。

我的环境如下。

  • Windows 8.1 Pro(64位)
  • Cygwin(mintty 2.1.5,x86_64-pc-cygwin)
  • git version 2.5.3

2 个答案:

答案 0 :(得分:0)

您检查了文件夹.git/hooks吗? 默认消息在其脚本中定义。

如果没有脚本,我猜,你的core.editor将显示没有任何默认消息。

因此,如果您的hooks为空,请在某处使用git init命令,然后将其hooks的脚本复制到空白hooks目录。

此外,我猜这个链接也可以帮到你:GIt - Git Hooks

(我想对此发表评论,但我的声誉水平不允许我这样做。)

答案 1 :(得分:0)

您应该使用git configcommit.template选项。请按照以下步骤操作:

  1. 在系统上创建一个包含提交消息的默认文本的文件。例如,使用以下命令创建文件:echo "MY DEFAULT COMMIT MESSAGE IS...." > ~/.mygitmsg.txt
  2. 如果要在系统上的所有存储库中进行提交时显示此默认消息,请在命令行键入git config --global commit.template ~/.mygitmsg.txt。否则,如果您只是想让它适用于您当前的git存储库,请删除--global开关,在git存储库中执行此命令,并将其作为默认消息。
  3. 如果这不起作用,可能是Windows上的默认文本编辑器和git存在问题。