我的GIT经验几乎为零,所以我提出的问题可能听起来有些奇怪。我们有一个Azure Devops仓库,每天都有提交记录。
9月3日,在我们的Azure Devops存储库中发生了一次更改提交,但从未被推送。该开发人员当时不在场,在过去的两个月中发生了很多提交。然后,在10月21日,9月3日的提交与所有之间的提交合并,并最终被推送。
有没有办法撤销合并的提交(发生在10月21日)和提交本身(发生在9月3日),同时不丢失其中所有的提交记录?
这是在Azure Devops中发生的,提交和推送主要通过Visual Studio 2019进行。
9月3日,在我们的Azure Devops存储库中发生了一次更改提交,但从未被推送。该开发人员当时不在场,在过去的两个月中发生了很多提交。然后,在10月21日,9月3日的提交与所有之间的提交合并,并最终被推送。
有没有办法撤销合并的提交(发生在10月21日)和提交本身(发生在9月3日),同时不丢失其中所有的提交记录?
这是在Azure Devops中发生的,提交和推送主要通过Visual Studio 2019进行。
git revert
的典型工作。查看文档。但是,您不必撤消提交 和 合并。根据您的工作流程,仅撤消“错误”的提交本身(或仅撤消合并提交,但通常更棘手,请注意)可能已经足够了。 - Romain Valerigit cherry-pick
或git revert
(实际上是一种“负”cherry-pick)的意义所在:提取某个提交差异(通过与其父项的差异)以将这些更改移植到其他地方,而不附加任何其他历史记录。 - Romain Valeri