如何通过一个开发人员进行回滚变化,使所有其他更改都活着



所有更改都已推向存储库,现在我们有一个错误,需要回滚开发器所做的所有更改到特定的commit(15天之前commitx -done)。

但是,我需要保留所有其他开发人员在提交后完成的更改。

选项1-结帐commitx的所有文件,然后提交旧版本的文件。

- 但是添加了一些新文件,而Developerx则在他的后来提交中删除了一些新文件,这将会发生什么?我需要手动远程/添加这些吗?

还有其他更好的方法吗?

如果通过拉动请求(或至少是非转移的合并提交)合并了不良更改,则可以参考提交Hash创建新还原commit:

假设您当前在主要分支(可能master):

git checkout -b revert-bad-changes
git revert <hashOfMergeCommit>
# push your branch, merge it into master, whatever your process is

如果更改是快进或以其他方式在主分支中进行的,则您需要在revert命令中参考大量提交,例如:

git revert <badCommitHash1> <badCommitHash2> <badCommitHash3>...
git revert <commitHash> 

这将创建一个新的提交,以恢复目标提交。

更多信息请参见

最新更新