簡體   English   中英

Git:重置為舊提交

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

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