所有更改都已推向存储库,现在我们有一个错误,需要回滚开发器所做的所有更改到特定的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>
这将创建一个新的提交,以恢复目标提交。
更多信息请参见