1. ホーム
  2. git

[解決済み] 以下のファイルに対するローカルの変更はマージによって上書きされます'と表示され、git stash をポップできない。

2023-06-09 14:10:32

質問

私はたくさんの変更といくつかの未追跡のファイルを持っていました。何かを調整する必要があったので、私は git stash -u を使い、いくつかのものを変更し、その変更をコミットしてプッシュし、そして次に git stash pop .

ためておいたファイルをいくつか修正したため、次のようなメッセージが表示されました。

error: Your local changes to the following files would be overwritten by merge:
    file_1.py
    file_2.py
Please, commit your changes or stash them before you can merge.
Aborting

これは奇妙に思えます。私はすべての新しい変更をコミットしており、コマンドを実行したとき、私のチェックアウトはきれいでした。

それは git stash pop を実行すると、変更点の半分と追跡されていないファイルが解凍されます。 git stash pop を再度実行すると、次のような出力が得られます。

some_file.html already exists, no checkout
some_other_file.html already exists, no checkout
yet_another_file.html already exists, no checkout
Could not restore untracked files from stash

git stash show には、隠した変更点のリストが表示されますが、これからどうすればいいのか途方に暮れています。

どうしたら元に戻せますか?

どうすれば解決するのか?

私はこれを回避しました。私の作業ディレクトリはきれいで最新のものでしたので、何らかのバグだったのだと思います。

私は git checkout . を実行し、その後に git stash apply はうまく機能し、まったく問題なくすべてを取り戻しました。しかし、実際に何が失敗の原因だったのかを解明することに興味があります。