2012-03-15 109 views
51

作爲一個新手的Git用戶,當我嘗試提交我的工作與提交終止由於空提交信息

git commit -a -v 

,我進入我的編輯提交信息,我關閉該文件,並得到這個錯誤:

Aborting commit due to empty commit message. 

我已經閱讀了幾乎所有處理這個問題的主題,改變了編輯器,基本上嘗試了一切,但沒有任何幫助。我該怎麼辦?

我注意到的一件事,當用記事本++試着整個過程時,文件無法保存。

可能的解決方法是這樣的:

git commit -am "SomeComment" 

但這樣做我覺得我有種抵消使用Git的目的。我想正確記錄我的更改。

+0

您正在使用哪個混帳的Windows版本? – 2012-03-15 18:26:58

+3

這裏唯一無效的東西是不輸入相關的提交消息。 git commit -am「SomeRelevantComment」 – NickSuperb 2012-03-15 19:54:23

+0

當您嘗試從編輯器中保存文件時會出現什麼錯誤? – 2012-03-15 20:47:26

回答

7

如果你想用一個適當的(長,多行註釋)文檔提交,但不希望-m選項,你可以做什麼(和我準備my commits當這樣做)是:

  • 寫你的文檔中的一個單獨的文件(在您做出的更改)「文檔提交」(或任何你想要的名字來稱呼它)
  • 犯了一個「git commit -a -F /path/to/doc-commit」)

總之,使用一個單獨的文件(可以在你想要的任何路徑)作爲你的提交消息。

+0

我能否在該文件中發表評論('#我的評論')? – borisdiakur 2014-02-04 12:14:53

+0

@Lego我懷疑是這樣的(沒有直接測試過它,但它應該把你的文本文件的全部內容作爲提交信息。 – VonC 2014-02-04 14:02:12

+0

我剛剛試過了:我的評論被視爲消息的一部分,所以它似乎在文本文件中不可能有評論無論如何,我喜歡在處理任務時在單獨的doc-commit文件中記錄更改的過程,所以 - 謝謝! – borisdiakur 2014-02-04 14:15:35

95

當你在配置Git中設置一個編輯器時,確保傳遞參數「-w」來強制Git等待你的提交信息,你可以在你的自定義編輯器中輸入。

git config --global core.editor "[your editor] -w" 
+4

已修復,我使用sublime作爲編輯器。謝謝。 – Medeiros 2014-04-02 16:39:34

+1

關於崇高文本的Samesies 2.試了一堆其他的東西,這是第一個工作。謝謝扎克。 – 2014-04-13 00:50:12

+0

固定爲我使用崇高的文本2,或gedit,作爲測試 – 2014-07-19 01:23:09

5

我有這個問題。我剛剛安裝了1.8.0,我發現我不得不稍微修改上述內容。我在這方面非常新穎,但實質上,它似乎在提交時會使用content.editor,而不是core.editor,至少如果您爲content.editor設置了某些內容。

所以,這是

git config --global content.editor "pico -w" 

終於讓我犯!顯然,當然,可以使用你使用的任何編輯器。

希望這有助於某人!

5

如果沒有指定消息,git不允許提交。你是否在提交對話框中指定了提交信息?

請注意,以#開頭的行將被Git視爲註釋,不會被視爲註釋並被Git忽略。

+0

這個。謝謝。 – 2013-11-26 16:08:41

3

在'Sublime'編輯器的windows計算機上,我們還可以在中添加以下行。gitconfig文件在以下文件夾[你的盤符]:/用戶/用戶名/

[core] 
    editor = '[YOUR DRIVE LETTER]:/Program Files/Sublime Text [YOUR VERSION NUMBER]/sublime_text.exe' --wait 

希望它能幫助。

+0

這對我有用。謝謝。 – 2014-02-14 00:50:42

+0

對我來說,這會創建一個名爲'--wait'的文件。你有一個工作的例子,其中文件的路徑包含空格,如'Program Files'中的?謝謝。 – zx81 2016-11-15 11:41:15

5

我也是Git的新手。我遇到了和你一樣的問題。我通過輸入解決了這個問題:

git commit -a -m 'some message' 

原因是git不允許沒有消息的提交。您必須將一些消息與您的提交命令相關聯。

1

對於評論記事本++(Windows)中做到這一點:

創建一個批處理文件的地方(例如C:\用戶\我\腳本\ npp.bat)
寫這篇文章批處理文件(取決於安裝在您的記事本+ +在哪裏):

"C:\Program Files\Notepad++\notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*" 

2.保存的批處理文件。
開放的.gitconfig(通常是在你的Windows用戶文件夾中),並確保
[核心]部分,您有:

editor = '"c:\\Users\\me\\scripts\\npp.bat"' 

或任一運行:

git config --global core.editor '"c:\Users\me\scripts\npp.bat"' 

4.現在執行某種提交,它會打開Notepad ++,git commit現在會等到記事本++窗口關閉。

0

我通過從打開一個新窗口的花哨MacVim編輯器切換到/ user/bin/vim中的標準默認vim來修復該問題,該文件與被調用的shell相同的窗口打開,似乎已經解決了這個問題。

+0

你只需要添加-f標誌,例如'git config --global core.editor「mvim -f」' – 2016-09-30 05:25:38

1

務必確保資本W.

混帳配置--global core.editor「打開-a的崇高文字2「-W」

,或者使用下面的命令來替換現有的那工作不正常。

git config --replace-all core。編輯 「打開-a的崇高文字2」-W「

3

對於Visual Studio代碼

git config --global core.editor "code -w" 

對於原子

git config --global core.editor "atom -w" 

對於崇高

git config --global core.editor "subl -w" 
+1

可能要檢查你的前兩種方法的區別 – mcalex 2017-08-06 13:59:49

3

我已經配置我的原子編輯器爲

git config --global core.editor "atom --wait" 

,但是當我做

當原子已經推出
git commit 

,它打開了一個新的選項卡添加註釋,但混帳不是等着我來保存文件,並扔「中止」的消息瞬間。當我關閉原子並試圖再犯一次時,git啓動了atom並等待添加註釋。

2

首先刪除編輯的舊條目:

git config --global --unset-all core.editor 
git config --unset-all core.editor 

設置你的編輯器:

  • 記事本++

    git config --global core.editor "Notepad++ -w" 
    git config core.editor "Notepad++ -w" 
    
  • 對於崇高

    git config --global core.editor "Notepad++ -w" 
    git config core.editor "subl -w" 
    
16

如果您的提交註釋是以#字符開頭的單行,則會發生此錯誤。例如,我得到這個錯誤,當我結束了我的提交信息文本編輯器窗口中的以下內容:

#122143980 - My commit message was here. The number to the left is a Pivotal Tracker story/ticket number that I was attempting to reference in the commit message. 
# Please enter the commit message for your changes. Lines starting 
# with '#' will be ignored, and an empty message aborts the commit. 
# On branch [MYBRANCH] 
# Your branch is up-to-date with 'origin/[MYBRANCH]'. 
# 
# Changes to be committed: 
# modified: [MYFILE1] 
# modified: [MYFILE2] 
# 

的問題,當然,是我的提交信息始於一個#角色,所以git的鋸行作爲註釋,因此看到提交消息是空的,因爲它只有評論!

解決的辦法是用#以外的字符開始提交消息。

在我的特定情況下,封閉在方括號中的舉足輕重的ID都做Git和Pivotal高興:

[#122143980] My commit message here. 
+1

GitLab對於問題具有相同的語法,我習慣在問題標識符前添加提交消息的前綴,這是一個問題,問題編號的括號也適用於GitLab。 – Orbling 2017-08-09 13:56:43

+1

呃,太棒了,你釘了它!它開着我的電池,但我看到我的確已經開始提交GitHub問題編號#xxxx Fixed:...並將其更改爲'Fixed #xxxx:...'確實已修復此問題。謝謝。 – Slartibartfast 2017-10-25 01:36:18