1. ホーム
  2. ギット

[解決済み】git stashで追加されたファイルを強制的に上書きする方法

2022-03-29 02:08:38

質問

gitで追跡されていないファイルがいくつかあります。 いくつか変更を加えてコミットしようとしたのですが、最初に未変更のファイルをチェックインするのを忘れていたことに気づきました。 そこで、ファイルを隠しておいてから、未修正のバージョンを追加しました。

その後、リポジトリにstashを適用すると、ファイルがすでに追加されているためにコンフリクトが発生します。

どうすれば、隠し場所を適用し、リポジトリ内のオリジナルよりも隠し場所のバージョンを優先して使用するようにできますか?

ありがとうございます。

解決方法は?

使用方法 git checkout の代わりに git stash apply :

$ git checkout stash -- .
$ git commit

これは、カレントディレクトリにあるすべてのファイルを、隠したバージョンに復元します。


作業ディレクトリ内の他のファイルに対する変更で、保持すべきものがある場合、あまり強引ではない代替案があります。

$ git merge --squash --strategy-option=theirs stash

インデックスに変更がある場合、あるいはローカルに変更があるファイルにマージを行う場合、git はマージを拒否します。個々のファイルを隠し場所からチェックアウトするには

$ git checkout stash -- <paths...>

を使うか、インタラクティブに

$ git checkout -p stash