如何恢复 git 中的一系列提交?通过查看gitrevisions文档,我看不到如何指定我需要的范围。例如:
A -> B -> C -> D -> E -> HEAD
我想做相当于:
git revert B-D
结果将是:
A -> B -> C -> D -> E -> F -> HEAD
其中 F 包含 BD 的倒数。
你使用的是什么版本的 Git?
当前git revert手册页仅适用于 当前 Git 版本(1.7.4+)。
git revert
正如在评论中报告的那样:
升级到 1.7.4 可以正常工作。 为了回答我自己的问题,这是我正在寻找的语法:
git revert B^..D
B^表示“B 的第一个父提交”:允许包含B在还原中。 请参阅“ git rev-parseSPECIFYING REVISIONS 部分”,其中包括<rev>^, 例如HEAD^语法:在“插入符号 ( ^) 字符是什么意思? ”中查看更多信息)
B^
B
git rev-parse
<rev>^
HEAD^
^
请注意,每个还原的提交都是单独提交的。
在评论中澄清:
git revert OLDER_COMMIT^..NEWER_COMMIT
如下所示,您可以在不立即提交的情况下还原:
git revert -n OLDER_COMMIT^..NEWER_COMMIT git commit -m "revert OLDER_COMMIT to NEWER_COMMIT"