2016-12-23 43 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

相关问题