git stash に追加されたファイルを強制的に上書きする 質問する

git stash に追加されたファイルを強制的に上書きする 質問する

Git で追跡されていないファイルがいくつかあります。いくつか変更を加えてコミットしたかったのですが、最初に変更されていないファイルをチェックインするのを忘れていたことに気付きました。そこで、ファイルを stash して、変更されていないバージョンを追加しました。

その後、リポジトリにスタッシュを適用すると、ファイルがすでに追加されているため競合が発生します。

スタッシュを適用し、リポジトリ内のオリジナルよりもスタッシュ内のバージョンを優先して使用するようにするにはどうすればよいでしょうか?

ありがとう

ベストアンサー1

git checkoutの代わりにを使用しますgit stash apply

警告: 以下のコマンドは、現在のディレクトリ ( ) 内のすべてのファイルを.スタッシュされたバージョンに復元します。コミットされていない変更やステージングされていない変更がある場合、それらは永久に失われます

  • スタッシュを作成した後にファイルを編集した場合、その変更は失われます。
  • 特定のファイルのみをスタッシュした場合(git stash push <pathspec>...またはを使用git stash -p)、他のすべてのファイルの変更が失われるため、このコマンドを使用しないでください

git statusこのコマンドを実行する前に、コミットされていない変更やステージングされていない変更がないことを確認するために使用します。

# WARNING: uncommitted/unstaged changes will be permanently lost
$ git checkout stash -- .
$ git commit

作業ディレクトリ内の他のファイルに変更があり、それを保持する必要がある場合は、より簡単な代替手段を次に示します。

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

インデックスに変更があった場合、またはマージによってローカルの変更が加えられたファイルに影響する場合、gitはマージを拒否します。個々のファイルは、stashからチェックアウトできます。

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

または対話的に

$ git checkout -p stash

おすすめ記事