2016-04-25 229 views
1

我在一天前在我的仓库中开始了一个git rebase,并且从未完成它。我忘记了,并且在我仍然处于rebase时进行了很多修改。今天我不小心做了一个git rebase --abort没有把这些修改提交。现在看起来我所有的修改都没有了。有什么方法可以恢复它们吗?git rebase恢复后--abort

git reflog看起来是这样的:

57d731c [email protected]{0}: rebase: aborting 
d2d3738 [email protected]{1}: rebase -i (start): checkout david 
57d731c [email protected]{2}: commit: My commit message 
+0

看看'git reflog',看看你是否可以找到你编辑的提交:) – knittl

+0

所以你建议如果我签出'd2d3738'它会恢复我在rebase期间做的无限制的修改? – Danvil

+0

使用'git show'或'git log -p'(或'gitk')检查提交的问题。如果你没有做出改变,机会很渺茫。我不认为Git会在放弃rebase时自动存储它们。值得一试可能还会检查可能包含丢失文件版本的悬空斑点和树木。 – knittl

回答

2

如果你没有犯底垫在这些修改,它们不幸将付诸东流。

+0

我想补充一点,git在您提交时仅对您的数据承担全部责任。 不幸的是,你已经失去了工作,但这里有一个教训值得:在未来尝试经常去避免这种情况。干杯! – MBlanc

3

如果您有新增内容,即使您没有提交,也只能恢复。 但是,如果您甚至没有将更改添加到暂存中,除非您使用IDE并且IDE具有更改的本地历史记录,否则无法恢复这些更改。

git开始跟踪文件,一旦他们在舞台区域,而不是他们未跟踪。

本地历史存在于所有的专业IDE中。

+1

赢得本地IDE历史! – dwenaus

+0

我放弃了旧的rebase之前,我进行了更改,但仍然无法恢复它们。 –

1

最好使用git stash之前git rebasegit stash pop可以很容易地把你带到你身边。