web-dev-qa-db-ja.com

Git stashメッセージを変更する

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

70
CharlesB

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

理想的ではないかもしれませんが、とにかくうまくいくはずです。

55
yibe

うん、方法があります、これを試すことができます:

git stash store -m "your descriptive message here" stash@{1}

これにより、上記のメッセージを含むstash@{0}という名前の新しいStashが作成されます。
このスタッシュはstash@{1}と同じです。

次に、上記の古いstash @ {1}を次のように削除できます。

git stash drop stash@{2}#新しいstashが作成されたため、stash @ {1}はstash @ {2}になりました。

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

19
Ryan Le

ポップして再び保存することなく。

14
manojlds

(manojldsの答えを拡張します。)メッセージを添付する最も簡単な方法は、実際にメッセージのスタッシュを解除して再度スタッシュすることです。これを行うのに役立つgit stash branchコマンドがあります。

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

唯一の欠点は、このスタッシュがtmp-add-stash-messageブランチから発生したように見えることです。その後、別のブランチをチェックアウトして、この一時的なブランチを削除できます。

もちろん、これは作業コピーがクリーンであることを前提としています。それ以外の場合は、現在の変更を隠しておくことができます:-)

11
krlmlr

@manojldsが提案するように、ポップして保存し直すのに役立ついくつかのコマンドを次に示します。

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