23.撤销合并(未完善)
先跳过本节
恢复已提交的合并
使用 revert
此方法会创建新的 commit 来抵消对应的 merge 操作。再次合并时,文件无法合并,会提示 Already up-to-date. Git 误以为撤销的分支,所有内容我们都不需要了。
我们上个实验,将 lgnew 分支合并到了 master ,为了演示冲突,我们需要撤销合并。合并操作分为两步。
找到合并的哈希值。使用 git hist 查看;
确定撤销合并提交中的父提交编号
使用
git revert
命令撤销合并。
# 找到合并分支的提交哈希值
git hist --all
* 8588c0b 2023-05-05 | Merge branch 'lgnew' [aku]
|\
| * ead2515 2023-05-05 | Added teset2.txt (HEAD -> lgnew) [aku]
* | da0a6f8 2023-05-05 | Added teset3.txt [aku]
|/
# 查看提交详细信息
commit 8588c0b75af1f1a1cb29cb95d874631a39d30ef8
Merge: da0a6f8 ead2515
Author: aku <aku@example.com>
Date: Fri May 5 13:39:39 2023 -0700
Merge branch 'lgnew'
# 恢复
git revert -m 1 8588c0b
[master 32c5d64] Revert "Merge branch 'lgnew'"
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 lab/test2.txt
使用 git revert
命令来撤销先前的合并提交时,需要指定要撤销的父提交。-m
选项用于指定要撤销的合并提交中的父提交编号。1
是 -m
选项后面的参数,表示要使用的父提交编号。
合并提交的哈希值是 8588c0b
,这个合并提交包含了两个父提交 Merge: da0a6f8 ead2515
ead2515 2023-05-05 | Added teset2.txt (HEAD -> lgnew) [aku]
da0a6f8 2023-05-05 | Added teset3.txt [aku]
通过 -m
选项指定的父提交序号,可以告诉 Git 要撤销哪个父提交。使用 -m 1
表示要撤销的父提交是序号为 1
的父提交,即父提交 da0a6f8
。
此方法会创建新的 commit 来抵消对应的 merge 操作。再次合并时,文件无法合并,会提示 Already up-to-date. Git 误以为这个分支的东西都是不想要的。
Last updated