2016-12-23 38 views
1

所有更改都已推送到存儲庫,現在我們得到了一個錯誤,並且需要將developerX完成的所有更改回滾到特定提交(commitX-15天前完成)。如何回滾一位開發人員所做的更改,使所有其他更改保持活動狀態?

但是有了這個,我需要保留所有其他開發者在commitX之後完成的更改。

選項1 - 簽出commitX的所有文件,然後提交舊版本的文件。

- 但有一些新文件被添加,有些被developerX在以後的提交中刪除,那會發生什麼?我需要手動遠程/添加這些?

還有其他更好的方法嗎?

回答

1

如果不良變化是通過拉入請求合併(或至少非快速轉發的合併提交),你可以引用承諾哈希創建一個新的復歸提交:

假設您目前所用的主支管(可能是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>... 
0
git revert <commitHash> 

這將創建一個新的提交,恢復目標提交。

較多見here

相關問題