0

我经常使用“git stash”和“git stash pop”来保存和恢复工作树中的更改。这就是我所做的,我之前未提交的更改现在已经消失了。

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。因此,隐藏的更改被转储回您的工作目录。然后,当 you 时reset,您恢复了这些相同的更改。

git reset --hard是为数不多的危险的“你可能在这里完全失去工作”的命令之一。reset很好地解释了不同的方面。

总而言之,它们stash不再存在,而您reset是工作目录。因此,它们很可能会丢失在比特和字节的以太中。尽管由于这些更改曾经被隐藏,但您也许可以使用git fsck --lost-found.

于 2012-06-13T21:30:44.123 回答