2015-06-24 81 views
-1
I done a git log --oneline 
111123 my login 
222222 logout 

從來就嘗試git的結帳111123我該如何回滾到git中的特定提交?

這回滾到提交具體的,但是當我做了一個混帳推doesn't回滾與變化,我想。

有我刪除了本地分支,在一個新的分支創建一箇舊版本 用git結帳[提交]? 我如何回到舊版本並推送更改?

+0

'GIT中結帳COMMIT; git分支-D BRANCH; git checkout -b BRANCH'但是請注意,覆蓋共享服務器上的歷史記錄可能會造成嚴重問題。 – StenSoft

回答

1

最安全的事情是不寫歷史,而是簡單地改變回購的狀態,以便它匹配提交111123。要做到這一點,做到以下幾點,假設你在master工作:

git checkout -b temp-branch 111123 
git reset --soft master 
git commit -m "Reverting state to match commit 111123" 
git checkout master 
git merge temp-branch 
git branch -d temp-branch 

然後你就可以放心地推,並且是好去。

1

後你做的git checkout 111123你是在分離模式。所以你必須從git checkout -b newbranch創建另一個分支,然後你可以這樣做:git push origin newbranch:remotenewbranch

或者你可以先刪除遠程分支,然後把你的本地新分支從提交(git push origin :remotebranch然後git push origin newbranch:remotebranch)製成,或者你可以做一個強制更新到以前與git push origin +111123:remotebranch提交。

2

要添加以前的答案,我會做到這一點使用的git reset <hash of commit>命令,這樣您將保留以前提交,而你可以放心地回到所需提交。

這裏有撤銷的文檔。 http://git-scm.com/docs/git-revert

我更喜歡這種方法,因爲我更安全地看到它。

相關問題