[解決済み] Gitの隠し場所。「ダーティな作業ツリーには適用できません。
2022-06-06 18:26:04
質問
私は、以前
git stash pop
というメッセージが表示されます。
Cannot apply to a dirty working tree, please stage your changes
何か対処法があれば教えてください。
どのように解決するのですか?
隠した変更をダーティな作業コピーに適用する必要があるとき、たとえば、隠し場所から複数のチェンジセットをポップする場合、私は次のようにします。
$ git stash show -p | git apply -3 && git stash drop
基本的には
- パッチを作成する
- それを apply コマンドにパイプします。
- もし衝突があれば、3 者間マージで解決する必要があります。
- 適用(またはマージ)が成功した場合、適用されたばかりのスタッシュアイテムをドロップします...
なぜか
-f
(強制) オプションがないのはなぜでしょう。
git stash pop
というオプションがあり、まさに上のワンライナーのように動作するはずです。
とりあえず、このワンライナーをgitのエイリアスとして追加しておくとよいでしょう。
$ git config --global --replace-all alias.unstash \
'!git stash show -p | git apply -3 && git stash drop'
$ git unstash
を指摘してくれた @SamHasler に感謝します。
-3
パラメータを指摘してくれたことに感謝します。このパラメータを使用すると、3 者間マージを使用して直接コンフリクトを解決できます。
関連
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] git rebase の取り消し
-
[解決済み] Gitで落としたスタッシュを復元する方法とは?
-
[解決済み] 未追跡のファイルを保存する方法を教えてください。
-
[解決済み] プル中に自分の変更を優先してGitのマージの競合を解決する
-
[解決済み] git stash popとgit stash applyの違いについて
-
[解決済み] git stash apply version
-
[解決済み】"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 pushが「すべて最新」と言う
-
git commit リモートエラー [rejected] master -> master (フェッチファースト)
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] 複数のgitコミットを元に戻すには?
-
[解決済み] LFはgitでCRLFに置き換えられます - それは何ですか、そしてそれは重要ですか?[重複]。
-
[解決済み] Git pull - マージする前に移動または削除してください。
-
[解決済み] git status に fatal: bad object HEAD と表示される。
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み】git stash -> 隠し持った変更を現在の変更にマージする