![](/img/trans.png)
[英]How to git reset an old commit for the purposes of branching off another commit
[英]Git: Reset to old commit
我知道這個問題已被回答了幾次,但到目前為止,我嘗試的每個發布的解決方案都不適合我:(
情況是:我們想要回到主分支中的工作提交。 不幸的是,從那時起,多個更改(包括與其他分支的合並)已被推送到掌握。
所以我需要做的是讓master分支再次進入最后一個工作提交 - 或者檢查最后一個工作提交並“覆蓋”master上的最后一次提交 - 在服務器(github)repo上。 我真的不在乎最后一次工作提交的更改是否丟失,但如果它們保持不變則不會受到傷害。
重要的是,其他分支不被觸及!!!
git revert沒有以多種方式完成工作......
我們可以嘗試用一個新的分支替換master分支,有點腥:)
從您知道的工作提交中創建一個新分支
如果提交是從頭部使用git branch master-temp HEAD~n
第n級。 用水平替換n。
git branch master-temp <sha1>
master-old
或master-deprecated
master-temp
重命名為master
這將保持變化,創建工作代碼的分支。 所有團隊成員都可以繼續工作而無需任何更改。
如果舊分支需要任何其他提交,請選擇提交到新主分支。
正如@Flows添加的那樣,
git push -force <branch>
。 必須使用更改來更新本地主分支,並按照設計進行開發循環。
我建議你找出你想要切換到的最后一次提交的提交ID:
git log --stat
然后,如果您在主分支中,請對該提交ID執行git checkout
git checkout <commit id>
這可能會使你進入一個獨立的狀態,現在確保你回到你想要的地方並做最后的提交並推動掌握。 希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.