だからここに何が起こったかです:私はブランチ「A」にいて、そのブランチでGitスタッシュを行いました次に、別のブランチ「B」に切り替えました。私はブランチ 'A'に戻りましたが、Gitスタッシュポップをしませんでした。マスターブランチに切り替えてから、ブランチ「A」に戻りました。今gitstash popを実行しようとしていますが、変更を元に戻せないようです。そのコードを回復する必要がありますが、git stash popを実行すると、ファイルの変更が一覧表示されません。コードをコミットしませんでした。
行った変更を復元する方法はありますか?この点で本当に助けていただければ幸いです。
隠し場所は、
git stash list
または
gitk --all
また、git stash
は追跡されていないファイルを隠しません。あなたがこれをし、その後git checkout --force
別のブランチの追跡されていないファイルを別のブランチの追跡されたファイルで上書きすると、そのコンテンツが失われます。隠しておくための推奨される方法は
git stash -u
これにより、このタイプの損失を防ぐことができます。
私たちも同じ問題に直面しました。したがって、失われた変更を回復する方法は次のとおりです。
ブランチBに戻ります。
gitチェックアウトB
git reflog
オプションを使用して、reflog情報を管理します。
git reflog --all
出力:
f332d5c refs/stash @ {0}:BのWIP:aa1d0c1 xyzコミットメッセージ
次に、git checkout A
を使用してブランチAに切り替えます。
最後に、失われた変更を回復します。
git stash apply f332d5c
同様のことが私にも起こりました。つまり、誤って新しいファイルを他のブランチにプッシュしていないことを確認してください。
これが私に起こったことです:私は自分のものを隠し、ホットフィックスを素早く行うために「dev」から「master」に切り替えました。修正プログラムをマスターにプッシュしたとき、開発用の新しいファイルをマスターブランチに追加したことにも気付きませんでした。スタッシュにそれらのファイルが含まれていることも想定していました。