[解決済み] git stash create で作成した stash を削除するにはどうすればよいですか?
質問
Git stash は私が欲しいものの多くを叶えてくれるようですが、スクリプトを書くのが少し難しいという点を除けば、もし何も変更がなければ
git stash; git stash pop
は、リポジトリに変更がある場合とは異なる動作をします。
どうやら
git stash create
はその問題に対する答えであり、すべてがうまくいきますが、1つのことを除いて...作成されたスタッシュを取り除くことができないのです。隠し場所をなくす方法はないのでしょうか?
私がやっていることを100%明らかにするために。
スタッシュを作成します。
~/tmp/a(master) $ git stash create
60629375d0eb12348f9d31933dd348ad0f038435
~/tmp/a(master) $ git st
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
~/tmp/a(master) $ git reset --hard
HEAD is now at 555d572 log message
スタッシュを使用する。
~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435
fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory
~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
スタッシュを削除します。(ただし、この最後の部分はうまくいきません)
~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference
解決方法は?
で作成した通常のスタッシュを削除するには
git stash
が必要です。
git stash drop
または
git stash drop stash@{n}
. 詳しくは下記をご覧ください。
で作成したスタッシュは削除する必要はありません。
git stash create
. docsより。
スタッシュエントリ (これは通常のコミットオブジェクトです) を作成し、そのオブジェクト名を、ref 名前空間のどこにも保存せずに返します。これはスクリプトで使用することを想定しています。おそらく、あなたが使いたいコマンドではないでしょう。
スタッシュコミットには何も参照されないので、いずれガベージコレクションされるでしょう。
で作成されたスタッシュは
git stash
または
git stash save
に保存されます。
refs/stash
で削除することができます。
git stash drop
. すべての Git オブジェクトと同様に、実際の stash の中身は
gc
は、それらのオブジェクトが期限切れになった後にプルーンします (デフォルトは 2 週間後)。
古いスタッシュは
refs/stash
リフロ
(試しに
cat .git/logs/refs/stash
で削除することができます。
git stash drop stash@{n}
ここで
n
が示す数値です。
git stash list
.
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] Gitで落としたスタッシュを復元する方法とは?
-
[解決済み] 未追跡のファイルを保存する方法を教えてください。
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある
-
[解決済み】GitHubのメッセージの意味: メールのプライバシー制限のためプッシュが拒否されました。
-
[解決済み】git-mergeの-dry-runオプションはありますか?
-
[解決済み】未マージファイルがあるため、Gitマージができない
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push s...
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] git でディレクトリ階層が異なる 2 つのブランチをマージするには?
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み] Gitのプッシュエラーです。Unable to unlink old (Permission denied)です。