有时需要还原某一次提交的改动, 可以使用 git revert
命令实现, 例如:
git revert <commit hash>
命令执行成功后, 仓库会还原到提交哈希为 <commit hash>
的改动, 如果没有冲突, 会自动创建一次新的提交。如果不希望自动创建提交, 加上 -n
选项。
还可以以当前 HEAD
为基准, 还原之前的某次提交, 例如:
git revert HEAD~<num>
命令执行成功后, 仓库会还原最近 <num> + 1
次提交的改动, 如果没有冲突, 会自动创建一次新的提交。
还可以指定一个范围还原某几次提交的改动,例如:
git revert -n <master>~<num1> .. <master>~<num2>
命令执行成功后, 仓库会还原最近的第 <num1>
次(包括)提交到最近的 <num1>
次(包括)提交的改动。
因为使用了 -n
选项,还原的结果保存到了暂存区中, 需要手动创建新的提交。
在使用 -n
选项时, 如果还原操作的结果不符合预期, 在创建新的提交之前, 可以撤销本次还原操作, 例如:
git revert --abort