簡體   English   中英

我該如何回滾到git中的特定提交?

[英]How can I go to rolling back to a specific commit in git?

I done a git log --oneline
111123 my login
222222 logout

我已經嘗試過git checkout 111123

這回滾到特定的提交,但是當我執行git push時,不會回滾我想要的更改。

我是否要刪除本地分支並在新分支中使用git checkout [commit]創建一個較舊的版本? 我如何回到較舊的版本並推動更改?

要添加先前的答案,我將使用git reset <hash of commit>命令執行此操作,這樣您將保留先前的提交,同時可以安全地返回所需的提交。

這是還原文檔。 http://git-scm.com/docs/git-revert

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

執行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強制更新到先前的提交git push origin +111123:remotebranch

最安全的操作不是覆蓋歷史記錄,而是簡單地更改存儲庫的狀態,使其與提交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

然后,您可以安全地推動,並且走的很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM