10

例えば:

git commit -am "Something"
git notes append -m "Dark "
git commit -am "Something"
git notes append -m "Side"

git rebase -i
# now I squash two commits and I expect to see "Dark Side" here
# but it show that note is undefined
git notes show 
4

1 に答える 1

16

問題はほぼ確実にあなたの設定です。notes.rewriteRefそれ以外の場合はデフォルトの構成があると仮定すると、これを機能させるにはオプションをに設定する必要がありますrefs/notes/commits

したがって、必要な魔法のコマンドは次のとおりです。

git config notes.rewriteRef refs/notes/commits

上記の後、コミットを押しつぶすと 2 つのメモが結合されます。

ただし、それらの間には改行があります。その動作を無効にして、例と同じ行にあるようにするには、Git ソース コードをハッキングする必要があると思います。

バックグラウンド

からgit help config(強調鉱山):

notes.rewriteRef

書き換え中にメモをコピーする場合、メモをコピーする (完全修飾された) ref を指定します。ref は glob の場合があり、その場合、一致するすべての ref のメモがコピーされます。この構成を複数回指定することもできます。

デフォルト値はありません。メモの書き換えを有効にするには、この変数を構成する必要があります。デフォルトのコミットノートの書き換えを有効にするには、に設定しますrefs/notes/commits

この設定は、環境変数でオーバーライドできます。このGIT_NOTES_REWRITE_REF環境変数は、参照またはグロブのコロンで区切られたリストでなければなりません。

(notes.rewriteModeとの説明も参照してくださいnotes.rewrite.<command>。どちらも必要な値、つまりそれぞれconcatenateとにデフォルト設定されていますtrue。)

上記のテストに似たものを次に示します。

$ git init
Initialized empty Git repository

$ git config notes.rewriteRef refs/notes/commits

$ git add a # Here's a file I created earlier

$ git commit -am 'Initial commit'
[master (root-commit) 93219cb] Initial commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 a

$ echo a >>a

$ git commit -am 'Something'
[master 3c17aca] Something
 1 files changed, 1 insertions(+), 0 deletions(-)

$ git notes append -m 'Dark '

$ echo b >>a

$ git commit -am 'Something'
[master 6732d81] Something
 1 files changed, 1 insertions(+), 0 deletions(-)

$ git notes append -m 'Side'

$ git rebase -i HEAD~2 # Will squash the last commit into the one before and accept the default commit message.
[detached HEAD 552668b] Something
 1 files changed, 2 insertions(+), 0 deletions(-)
Successfully rebased and updated refs/heads/master.

$ git show
commit 552668b4b96e4b2f8fcd7763dcc115edd159eb89 (HEAD, master)
Author: me_and <not.an@email.address>
Date:   Wed Jan 30 10:09:10 2013 +0000

    Something

    Something

Notes:
    Dark

    Side

diff --git a/a b/a
index 7898192..4ac2bee 100644
--- a/a
+++ b/a
@@ -1 +1,3 @@
 a
+a
+b
于 2013-01-30T10:15:05.417 に答える