Git は、コミット時に で始まる行#
をコメント行として扱います。これは、チケット追跡システムを使用していて、行頭にチケット番号を書き込もうとしているときに非常に面倒です。
#123 salt hashed passwords
Git はコミット メッセージから行を削除するだけです。ハッシュをエスケープする方法はありますか? \
とを試し!
ましたが、何も機能しません。前の空白#
は保持されるため、これも問題の有効な解決策ではありません。
Git は、コミット時に で始まる行#
をコメント行として扱います。これは、チケット追跡システムを使用していて、行頭にチケット番号を書き込もうとしているときに非常に面倒です。
#123 salt hashed passwords
Git はコミット メッセージから行を削除するだけです。ハッシュをエスケープする方法はありますか? \
とを試し!
ましたが、何も機能しません。前の空白#
は保持されるため、これも問題の有効な解決策ではありません。
この動作は、git commit
のデフォルトの「クリーンアップ」動作の一部です。で始まる行を保持したい場合#
は、別のクリーンアップ モードを使用できます。
例えば
git commit --cleanup=whitespace
これを行う場合#
、コミットに表示したくないすべての行を慎重に削除する必要があります。
git1.8.2 (2013 年 2 月)以降#
、コミット メッセージのコメント行に' ' 以外の文字を使用できることに注意してください。
#
これにより、バグ番号の参照に「 」を使用できます。
Git がユーザーにエディターでメッセージを編集するように求めるときに表示されるさまざまな「ヒント」行は、デフォルトで ' ' でコメントアウトされて
#
います。
core.commentChar
構成変数を使用して、この「 」を別の文字にカスタマイズできます#
。
理論的には、単語 (複数の文字) を入れることができますが、git 2.0.x/2.1 はより厳密になります (2014 年第 3 四半期)。core.commentChar
Nguyễn Thái Ngọc Duy ( )によるコミット 50b54fdを参照してください。pclouds
コメント文字列はサポートしていません (少なくともまだ)。また、マルチバイト文字エンコーディングも誤解される可能性があります。
これに違反するため、コンマが 2 つあるテストを更新します。eff80a9で導入さ
core.commentChar
れたパッチ(カスタム "コメント文字" を許可する - 2013-01-16) で追加されます。なぜその動作が必要なのかはわかりません。
git 2.0.x/2.1 (2014 年第 3 四半期) は、次の自動選択を追加しますcore.commentChar
: commit 84c9dc2
を参照してください
core.commentChar
が " " の場合auto
、コメント文字はデフォルトのように ' ' で始まり#
ますが、準備されたメッセージに既にある場合は、小さなサブセットで別の文字を見つけます。git が予期せずいくつかの行を削除するため、これで驚くことはなくなります。git は、'
#
' をカスタム テンプレートのコメント文字として認識し、最終的なコメント文字が異なる場合に変換するほどスマートではないことに注意してください。
カスタム テンプレートの '#' 行をコミット メッセージの一部と見なします。したがって、これをカスタム テンプレートで使用しないでください。
「auto」の候補文字のリストは次のとおりです。
# ; @ ! $ % ^ & | :
つまり、コミット メッセージで ' ' が使用されているため、次のようなコマンドgit commit -m '#1 fixed issue'
は自動的に commentChar を ' ;
' に切り替えます。#
ここでの回答は適切で詳細ですが、私のような git noob にとって、git 構成オプションのカスタマイズはそれほど明白ではありません。コメント文字を から#
に変更する例を次に示します。;
git config core.commentChar ";"
それはあなたがする必要があるすべてです。
コマンドラインオプションを使用できます-m
:
git commit -m "#123 fixed"
インタラクティブなリベースを実行している場合、コミット メッセージを何も含めずに保存すると (#
最初の がコメントになり、無視されたため)、git は何をすべきかを示します。
Aborting commit due to empty commit message.
Could not amend commit after successfully picking 5e9159d9ce3a5c3c87a4fb7932fda4e53c7891db... 123 salt hashed passwords
This is most likely due to an empty commit message, or the pre-commit hook
failed. If the pre-commit hook failed, you may need to resolve the issue before
you are able to reword the commit.
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
したがって、メッセージを修正するだけです。
git commit --amend -m "#123 salt hashed passwords"
リベースを続行します。
git rebase --continue
私のすべてのコミットは で始まる#issueNumber
ので、このボイラープレートを my に置きますvim .git/hooks/commit-msg
:
NAME=$(git branch | grep '*' | sed 's/* //')
echo "$NAME"' '$(cat "$1") > "$1"
それでは、ブランチが#15
あり、コミットメッセージを作成するとしましょうadd new awesome feature
。このアプローチでは、最終的なコミット メッセージは#15 add new awesome feature
.
チケット番号には別のプレフィックスを使用してください。または、「Bug #42」のように、チケット番号の前に単語を追加します。または、行の前に単一のスペース文字を追加します。その空白を削除したい場合は、そのためのコミットフックを追加できます。
個人的には、この種のコミット メッセージの操作をフックで実行したくありません。これは、トリガーしたくないときにトリガーすると非常にイライラする可能性があるためです。最も簡単な解決策は、おそらく問題を再考することです。