空のコミットメッセージのためにコミットを中止します


82

初心者のgitユーザーとして、自分の仕事をコミットしようとすると

git commit -a -v

エディターにコミットメッセージを入力し、ファイルを閉じると、次のエラーが発生します。

Aborting commit due to empty commit message.

私はこの問題に対処するほぼすべてのトピックを読み、編集者を変更し、基本的にすべてを試しましたが、何も役に立ちません。私は何をすべきか?

私が気づいたことの1つは、notepad ++でプロセス全体を試しているときに、ファイルを保存できなかったことです。

考えられる回避策は次のとおりです。

git commit -am "SomeComment"

しかしそうすることで、私はgitを使用する目的を無効にしているような気がします。変更を適切に文書化したい。


どのバージョンのgitfor Windowsを使用していますか?
Josh Lee

3
ここで唯一無効になるのは、関連するコミットメッセージを入力しないことです。git commit -am "SomeRelevantComment"
NickSuperb 2012年

エディタからファイルを保存しようとすると、どのようなエラーが発生しますか?
Karl Bielefeldt

`C:\ Program Files`の下にあるファイルで作業しているときに、Windows7でその問題が発生しました。Windows 7は、このディレクトリ(およびその下の任意の場所)への書き込みから保護します。コミットメッセージを書き込む一時ファイル(COMMIT_MSGなど)が.gitディレクトリに作成されるため、失敗しました。
ゴーティエ2013年

「文書化」?うーん...–
パトリック

回答:


140

Gitの構成でエディターを設定するときは、必ずパラメーター「-w」を渡して、カスタムエディターで入力するコミットメッセージをGitに待機させます。

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

1
崇高なテキストの同一性2.他の多くのものを試しましたが、これが最初に機能しました。Zakに感謝します。
スコットシルビ2014

テストとして崇高なテキスト2、またはgeditを使用して修正しました。

崇高なテキスト3:-w引用符の内側、天才。他の多くのフォーラムや例で見たように、引用符の外でそれを使用することで困惑していました。
danjah 2014

7
macvimの場合mvim -f-wフラグの代わりに使用します。
nishanthshanmugham 2015

1
geditの既存のインスタンスを使用してコミットメッセージを設定すると、バグが発生することがあるようです。そのため"gedit -w"、私には機能しませんでしたが"gedit -s""gedit --standalone"機能します。
jfv 2016年

42

このエラーは、コミットコメントが#文字で始まる1行の場合に発生する可能性があります。たとえば、コミットメッセージのテキストエディタウィンドウで次のようになったときに、このエラーが発生しました。

#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はその行をコメントと見なし、その結果、コメントしかなかったため、コミットメッセージが空であると見なしたことです。

修正は、コミットメッセージを#。以外の文字で開始することでした。

私の特定のケースでは、Pivo​​tal IDを角かっこで囲むと、gitとPivotalの両方が満足しました。

[#122143980] My commit message here. 

3
GitLabの問題の構文は同じです。コミットメッセージの前に問題識別子を付けることに慣れていますが、これは問題でした。問題番号の括弧はGitLabでも問題なく機能します。
オーブリング2017

2
ええと、素晴らしい、あなたはそれを釘付けにしました!それは私をバタバタさせていましたが、私は確かにGitHubの問題番号でコミットを開始し、#xxxx Fixed: ...これをに変更することでFixed #xxxx: ...実際に修正されたようです。ありがとうございました。
Slartibartfast 2017年

を使用してgithubの問題を参照しました#123 some message。コミット中に機能しましたが、後でrebaseviaエディターをコミットするときに失敗しました。
スタッフォードウィリアムズ

20

VisualStudioコードの場合

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

原子の場合

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

崇高なために

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

1
最初の2つの方法の違いを確認することをお
勧めし

そして、どのようにして元の設定に戻しますか?または、現在の設定をどのように読み取りますか?
ティム

8

適切な(長い複数行のコメント)ドキュメントを使用してコミットしたいが、-mオプションが必要ない場合は、次のことを実行できます(コミットの準備時に実行できます)。

  • ドキュメントを(変更を加えている間)別のファイルに書き込みます'doc-commit'(または名前を付けたい名前
  • ' git commit -a -F /path/to/doc-commit'でコミット)

つまり、コミットメッセージとして別のファイル(任意のパスに配置できます)を使用します。


そのファイルにコメントを付けることはできます# my commentか()?
borisdiakur 2014

。私はそれを直接テストしていませんが、それはコミットメッセージとしてテキストファイルの完全な内容を取る必要があります(そう疑う@Lego
VonC

試してみました。コメントはメッセージの一部として扱われたため、テキストファイルにコメントを含めることはできないようです。とにかく、タスクの作業中に別のdoc-commitファイルに変更を文書化するプロセスが好きです。ほんとありがと!
borisdiakur 2014

8

私はGitの初心者でもあります。私は基本的にあなたと同じ問題に遭遇しました。私はこれを次のように入力して解決しました。

git commit -a -m 'some message'

その理由は、gitはメッセージなしのコミットを許可しないためです。一部のメッセージをcommitコマンドに関連付ける必要があります。


5

私はこの問題を抱えていました。以前に1.8.0をインストールしたところ、上記を少し変更する必要があることがわかりました。私はこれらすべてについて非常に新しいですが、基本的に、コミットするときは、少なくともcontent.editorに何かが設定されている場合は、core.editorではなくcontent.editorを使用するようです。

だから、

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

ついにコミットさせてくれました!もちろん、使用するエディターはすべて使用してください。

これがいつか誰かに役立つことを願っています!


5

gitは、メッセージが指定されていない場合のコミットを許可しません。コミットダイアログでコミットメッセージを指定しましたか?

#で始まる行はGitによってコメントとして扱われ、コメントとは見なされず、Gitによって無視されることに注意してください。


5

まず、エディタの古いエントリを削除します。

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

エディターを設定します。

  • Notepad ++の場合

    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"
    

4

アトムエディターを次のように構成しました

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

しかし、私がしたとき

git commit

アトムがすでに起動されているとき、コメントを追加するための新しいタブが開きましたが、gitはファイルを保存するのを待っておらず、すぐに「中止」メッセージをスローしました。アトムを閉じてもう一度コミットしようとすると、gitはアトムを起動し、コメントが追加されるのを待ちました。


4

「Sublime」エディター用のWindowsマシンでは、次のフォルダー[YOUR DRIVE LETTER]の.gitconfigファイルに次の行を追加することもできます:/ users / username /

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

それが役に立てば幸い。


私の場合、これにより--wait。というファイルが作成されます。次のように、ファイルへのパスにスペースが含まれている実用的な例はありますProgram Filesか?ありがとう。
zx81 2016年

2

コミットメッセージが必要です。

vimの場合:(私も初心者です。これまでvimでしか作業していませんでした)

あなたの命令の後、

git commit -v

名前の付いたファイルに移動します

「.git / COMMIT_EDITMSG」

それはあなたのエディター(私の場合はvimです)で開きます

あなたがしたときに見たものとまったく同じように見えるコメント付きのテキストがたくさんあります

git status  OR
git diff

気づいたら、上部に空の行が表示されます-コミットメッセージが必要な場所です。ここにコミットメッセージを入力し、エディターを保存して終了します。完了しました!


パーフェクト!!! 簡単な解決策があることを私は知っています
スコットステンスランド

2
git config --global core.editor "subl -w" -F 

これはたくさんの試行錯誤の後で私を助けました、誰かがそれが役に立つと思うことを願っています。

sublコマンドとして使用するためにすでにsublime3をシンボリックリンクしていました。

「」の外側の-Fフラグが機能した理由について、私は完全に無知です。


1
-Fフラグは必要ありませんでした。-wで十分でした。-wは、Sublimeに「ファイルが閉じられるのを待ってから戻る」ように指示します(from subl --help)。
ガレンロング

1

大文字のWを確認してください。

git config --global core.editor "open -a'Sublime Text 2'-W"

または、次のコマンドを使用して、正しく機能していない既存のコマンドを置き換えます。

git config --replace-all core.editor "open -a'Sublime Text 2'-W"


1

Notepad ++(Windows)にコメントするには、次のようにします。

1.どこかにバッチファイルを作成します(例:c:\ Users \ me \ scripts \ npp.bat)
これをバッチファイルに書き込みます(Notepad ++がインストールされている場所によって異なります)。

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

2.バッチファイルを保存します。
3. .gitconfig(通常はWindowsユーザーフォルダーにあります)を開き
[コア]セクションの下に次の項目があることを確認します。

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

または、次のいずれかを実行します。

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

4.ある種のコミットを実行すると、Notepad ++が開き、gitcommitはnotepad ++ウィンドウが閉じるまで待機します。


1

まず、さらに先に進むために、gitが何らかのエディタープロンプト(ビジュアルスタジオ/崇高/メモ帳++ /アトムなど)を開くように正しく構成されていることを確認してください。

  • 私の場合、Ubuntu環境でVisualStudioを使用するようにgitを構成しました。
  • 変更をコミットしようとしましたが、指定された失敗で失敗しました。
  • 次に、.gitconfigファイルを調べたところ、エディターに-wパラメーターがないことがわかりました。
  • git config --global core.editor "code -w"コマンドを実行して.gitconfigファイルを再確認したところ、-wが正しく追加されていることがわかりました。
  • もう一度変更をコミットしようとしましたが、うまくいきました。

これが私のような他の初心者に役立つことを願っています。


0

新しいウィンドウを開く派手なMacVimエディターから、呼び出し元のシェルと同じウィンドウで開く/ user / bin / vimの標準のデフォルトvimに切り替えることで問題を修正しましたが、修正されたようです。問題。


1
-fフラグを追加するだけです。例git config --global core.editor "mvim -f"
Ilias Karim

0

この問題が発生し、コミット後にコメントを入力しないと、エラーが発生することがわかりました。すぐにメインのbashに戻るためにジャンプすると、コミットされません。もっと明確にするために、他のエディターではなくGITBashを使用しています。


0

完全なアトムファイルパスを使用した場合、それは機能しなかったので、使用する代わりに:

git config --global core.editor "c:/programs/atom/atom.exe -w"

私が使用した:

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

そしてそれはうまくいきました。幸運を!

重要:最初に、使用しているコマンドラインからアトムが直接(アトム)呼び出しを正しく開始していることを確認してください。


0

コミットエラーの解決策

ここに画像の説明を入力してください

上に示したように、コミット中に入力する必要のあるコミットフィールドがあります。これは基本的に、バージョン管理と各コミットの変更を理解するためのものです。

これを入力しないと、エラーが発生します:空のコミットメッセージのためにコミットを中止します

注:上記は、Rstudioのコミットとファイルのプルでのみ機能します。


0

このエラーが発生しました。使用したにもかかわらずgit config --global core.editor "code -w"、ファイルを閉じるのを待ちませんでした。すぐに中止されます。

私の問題は、以前にこのコマンドを実行したことでしたgit config core.editor "code"

と思われるcore.editor(I推測は、ローカルの作業ディレクトリ指定である)、より優先されました--global core.editor

場合git config --global core.editor "code -w"(または任意のエディタを使用しようとしている)あなたのために動作しない、省略してみてください--global

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.