[英]How to revert and go the previous stage before commit
我是版本控制系統 (git) 的新手。 我犯了一個錯誤,當我意識到它發生時為時已晚。 我做了什么
(1) commit current work
(2) git pull --rebase origin master
然后我使用
(3) git checkout 858223adcac47288c44c4c07fbc3938773d778b8
現在我需要在提交之前進入上一個階段(1)。 我真的不知道怎么去那里。 這意味着我想去我的主人並撤消 rebase 。
如果有人告訴我如何做到這一點,我衷心感謝。
git
保存refs
歷史記錄(讀取branches
)主要用於這種情況,當您想要一個不再可以從任何當前refs
訪問的提交時。
除非經過足夠的時間或您明確地使reflog
條目過期並進行垃圾收集,否則歷史記錄可通過發出git reflog <branch>
以<sha> <action description leading to changing value of branch>
形式輸出對分支的更改<sha> <action description leading to changing value of branch>
從最開始最近的一個。
找到您想要返回的那個(可能是您提到的提交之前的那個),檢查:
git reflog master
檢查它以仔細檢查內容:
git checkout <sha>
移動到 master 並將 master reset
為該提交(注意,如果使用不當, hard reset
有潛在危險/麻煩):
git checkout master
git reset --hard <sha>
一些注意事項:
git-rebase
如何工作。 這將有助於了解在rebase
https://git-scm.com/book/en/v2/Git-Branching-Rebasing期間如何no longer reachable
它也可以創建另一個承諾之上rebased
犯,有效地撤銷被拉伸的部分,但是這不太實用且僅用於完整性指出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.