簡體   English   中英

如何在提交前恢復並進入上一階段

[英]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.

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