结账和重置后恢复未提交的工作

时间:2017-07-19 03:06:15

标签: git github version-control

我在使用Git时遇到了问题。我对我的文件进行了一些更改,并使用

检出了新的分支
git checkout -b new_branch

实际上我还没有在旧分支中提交代码。我已经转移到旧分支并恢复了更改,认为这些更改在新分支中可用。有没有机会恢复任一分支中未提交的更改?我也试过git reset --hard

这是我的git reflog输出

764d2e2 HEAD@{1}: checkout: moving from old_branch to new_branch
c5726a6 HEAD@{2}: checkout: moving from new_branch to old_branch
c5726a6 HEAD@{3}: reset: moving to HEAD@{2}
c5726a6 HEAD@{4}: checkout: moving from old_branch to new_branch
c5726a6 HEAD@{5}: checkout: moving from new_branch to old_branch
c5726a6 HEAD@{6}: checkout: moving from old_branch to new_branch

1 个答案:

答案 0 :(得分:3)

我相信git checkout,如果你没有指定--force,应该保留更改的文件,或者如果它们在分支之间也不同,那么你应该能够将它们提交到当前的任何分支

但是你已经运行git reset --hard,这更糟糕,因为它肯定会丢弃未提交的更改。我担心现在无法恢复它们。

如果您已按照VonC描述的那样暂存,则可以使用search through dangling blobs查找更改的文件。