2011-03-09 43 views
2

我想將我的應用程序恢復到我所做的舊提交。使用git恢復我的應用程序

我做出承諾如下:

git的承諾-m 「嗒嗒」

當我按下 「混帳日誌」 我看到所有我做了提交的。

如何使用git恢復我的應用程序?

編輯:

我做混帳推(到Heroku的),它說:

error: failed to push some refs to '[email protected]:asfalt.git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

回答

1

當你做一個git的日誌,你會看到你用沙做的提交,例如:

commit 7df7855f2f74007c1d0359f7218be446dd7633e8 

使用sha還原您想要回滾的更改。例如,

git revert 7df7855f2f74007c1d0359f7218be446dd7633e8 
+1

請注意,這將僅恢復指定的提交,但不會將檢出重置爲此提交的狀態。這似乎並不是問題所在 – 2011-03-09 20:43:04

3

這取決於 - 您是否想要暫時回退到舊的提交,還是想要在舊的提交後永久丟棄所有內容?

對於臨時招:

git checkout <old commit SHA> 

(注:這將使它所以,你是不是在任何特定的分支如果您決定要在這之後進行提交,你需要。首先創建一個分支)

後扔掉一切承諾:

git reset --hard <old commit SHA> 
1

使用git log找到的SHA1哈希承諾要恢復到(它看起來像9fcf42cb3dcc78e8c62ee1714ee27d42f1275384),並使用:

git checkout 9fcf42cb3dcc78e8c62ee1714ee27d42f1275384 

這將分離你的頭,所以一定要小心,如果你做出承諾就這一個(使用git branch -b newbranch後的頂結帳以避免這種情況)。