2011-11-14 6 views
55

私は意味のある名前を付けることを将来のために保存しました。 git stash saveに引数としてメッセージを渡すことは可能ですが、既存の隠しにメッセージを追加する方法はありますか?Git stashメッセージを変更してください

+0

私は、この質問は重複したフラグよりも古いと認識していますが、その質問にはより良い回答があります。 – Michael

答えて

45

.git/logs/refs/stashに保存されているメッセージを直接編集することができます。

私はそれがおそらく理想的ではないと知っていますが、とにかく動作するはずです。

+5

うまくいくと思われるという事実は信じられないほど幸運なことです。メッセージはコミットメッセージにも格納されています(stashはコミットとして内部的に表現されています)。それ。 – Cascabel

+0

これは機能します。ありがとうございました – CharlesB

+2

これはコミットメッセージ( 'git show stash'または' git log --all'を参照)を変更せず、stash reflogのエントリだけを変更します。 – Zaz

15

再度ポップして保存しないでください。

+2

一見面白そうではありませんが、これは最も簡単な解決策です。 – Kirby

+1

「ポップして再度保存する」が、現在のブランチにマージに失敗する可能性があるので、さまざまなブランチを横切っています。あなたがサッシの長いリストであなた自身を見つけたなら、たぶん分岐をよりよく利用する必要があります。 – i3ensays

+1

最初に私は彼が言ったと思っていた "無駄ではない" –

11

(manojldsの回答がさらに拡大しています)メッセージを添付する最も簡単な方法は実際にはメッセージを隠すことであり、メッセージには再格納します。git stash branchコマンドがあります。

git stash branch tmp-add-stash-message 
git stash save "Your stash message" 

唯一の欠点は、このスタッシュが今tmp-add-stash-message枝に由来すると思われることです。その後、別のブランチをチェックアウトし、この一時ブランチを削除することができます。

もちろん、これはそうでなければ、

+0

この回答は実際には正しい答えです – woohoo

1

:-)現在の変更を隠しておくことができ、作業コピーがクリーンであることを前提としてここでは、ポップと@manojldsが示唆するように、再び救うためにいくつかのコマンドです:

git stash store -m "your descriptive message here" [email protected]{1}

git stash #save what you have uncommitted to [email protected]{0} 
git stash pop [email protected]{1} #or another <stash> you want to change the message on 
# only if necessary, fix up any conflicts, git reset, and git stash drop [email protected]{1} 
git stash save "new message" 
git pop [email protected]{1} #get back to where you were if you had uncommitted changes to begin with 
9

うん、方法があり、あなたはこれを試すことができます上記のメッセージと共に[email protected]{0}という名前の新しいStashが作成されます。
このStashは[email protected]{1}と同じです。

その後、あなたは{1}を持つ上に、古いのstash @を削除することができます。

git stash drop [email protected]{2}#のstash @ {1}のstash @新しいスタッシュが作成されているように、{2}となっています。

注:stash @ {0}でこれを行うことはできません。git stash store -m "message here" [email protected]{0}は何も行いません。

+1

なぜ' stash {0} 'ではうまくいかないのですか? – CharlesB

+0

実際に私は知らない、私は試して、それは動作しませんでした。 stash @ {1}を呼び出すと、stash @ {1}のコピーがスタックの一番上に来るので、ユーザが 'git stash apply'を呼び出すと、別の結果が得られます。 stash @ {0}を呼び出した場合、後で 'git stash apply'を呼び出すと同じ結果が得られます。 –

+0

あなたのメッセージは 'git stash save 'です – woohoo

関連する問題