0

「gitstash」と「gitstashpop」を頻繁に使用して、作業ツリーの変更を保存および復元します。これは私がしたことであり、以前のコミットされていない変更はなくなりました。

git stash -u
git checkout master
git pull --rebase
git checkout dev
git merge --no-ff master
10 files changed, 1000 insertions(+), 2000 deletions(-)
git stash pop 
CONFLICT (content): Merge conflict in file.ext

次に、マージを元に戻すことができると思いました。

git reset --hard origin/master
git reset --hard origin/master

これで、以前に隠されていたコミットされていない変更はどこにも表示されfile.extず、マージされたコードのみが表示されます。最初に隠していたすべての変更を元に戻すにはどうすればよいですか?

4

1 に答える 1

3

popオフにstashすると、からも削除さstashれます。そのため、隠された変更は作業ディレクトリにダンプされました。次に、あなたがreset、あなたがそれらの同じ変更を元に戻したとき。

git reset --hardは、数少ない危険な「ここで完全に失う可能性がある」コマンドの1つです。これresetは本当によくのさまざまな側面を説明しています。

要約すると、それらはstashもう存在せず、あなたresetは作業ディレクトリにいます。したがって、それらはビットとバイトのエーテルに失われた可能性が最も高いです。これらの変更は一度隠されていたので、でコミットを見つけることができるかもしれませんgit fsck --lost-found

于 2012-06-13T21:30:44.123 に答える