所有更改都已推送到存儲庫,現在我們得到了一個錯誤,並且需要將developerX完成的所有更改回滾到特定提交(commitX-15天前完成)。如何回滾一位開發人員所做的更改,使所有其他更改保持活動狀態?
但是有了這個,我需要保留所有其他開發者在commitX之後完成的更改。
選項1 - 簽出commitX的所有文件,然後提交舊版本的文件。
- 但有一些新文件被添加,有些被developerX在以後的提交中刪除,那會發生什麼?我需要手動遠程/添加這些?
還有其他更好的方法嗎?
所有更改都已推送到存儲庫,現在我們得到了一個錯誤,並且需要將developerX完成的所有更改回滾到特定提交(commitX-15天前完成)。如何回滾一位開發人員所做的更改,使所有其他更改保持活動狀態?
但是有了這個,我需要保留所有其他開發者在commitX之後完成的更改。
選項1 - 簽出commitX的所有文件,然後提交舊版本的文件。
- 但有一些新文件被添加,有些被developerX在以後的提交中刪除,那會發生什麼?我需要手動遠程/添加這些?
還有其他更好的方法嗎?
如果不良變化是通過拉入請求合併(或至少非快速轉發的合併提交),你可以引用承諾哈希創建一個新的復歸提交:
假設您目前所用的主支管(可能是master
):
git checkout -b revert-bad-changes
git revert <hashOfMergeCommit>
# push your branch, merge it into master, whatever your process is
如果變化快進或以其他方式在主分支做對,你就需要引用大量提交我n revert
命令,例如:
git revert <badCommitHash1> <badCommitHash2> <badCommitHash3>...