2014-01-10 72 views
11

我在使用git commit提交的目錄中進行了一些本地更改。後來我意識到,我的錯誤改變打破了我的構建。所以我在我的回購上做了一個「git reset --soft」。 但是我搞砸了,因爲我沒有備份全部撤消的更改,因爲其中一些包含了我想要的新功能。有關如何撤銷「git reset --soft」操作的任何幫助,以便我可以回覆我提交的更改。如何撤消git reset --soft以取回我的更改?

+1

上一次提交應該仍然在reflog中。但是,如果您進行了軟重置,那麼這些更改是否仍然存在於您的工作副本中? – cHao

+0

http://stackoverflow.com/questions/2510276/undoing-git-reset –

+0

嗨,謝謝你的指針。其實我剛剛發現的是,我忘了爲我的一些本地文件做一個「git add」。所以當我實際上做了一次提交之後,那些處於「階段」階段的本地文件的所有更改都被提交併且未分離的更改丟失了。現在看來,我完全被搞砸了。有出路嗎? – dennis

回答

28

你應該重置回你的提交ID git reset _Your_Hash_,因爲git reset --soft只是重置文件而不是索引或工作樹。

btw在你git reflog你應該找到你的一些提交。

+0

我還有一堆'git status'的變化。在'git reset --soft'之前,這些不在那裏,所以這個回答作爲一般的undo-this-git-command似乎不完整。 – jozxyqk