82

そのため、大量の変更と追跡されていないファイルがありました。何かを微調整する必要があったので、 を使用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隠した変更のリストはまだ表示されていますが、今何をしているのか途方に暮れています。

どうすれば立ち往生できますか?

4

4 に答える 4

56

私はこれを回避しました。私の作業ディレクトリはクリーンで最新の状態だったので、何らかのバグだったに違いないと思います。

私は走って、それがうまくいっgit checkout .た後、私はすべてをまったく問題なく取り戻しました. git stash applyしかし、実際に失敗した原因を突き止めたいと思います。

于 2013-11-13T12:15:46.323 に答える
3

で作成された stash-uは、追跡されていないファイルを消去してから削除する必要があります(applyそして+です)。popapplydrop

一般的なパラノイアからmv、追跡されていないファイルを安全な場所に置き、git stash applyすべてを注意深くチェックし、git stash dropすべてが正しいことを確認しました。:-)

于 2013-11-12T19:38:01.993 に答える