由于合并但不允许使用git revert <hash>但没有给出-m选项

use*_*484 23 git github revert git-revert

我试图通过使用'revert'命令恢复到git中的某个'hash'数字.

我使用以下命令:

git revert c14609d74eec3ccebafc73fa875ec58445471765
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下返回:

错误:提交c14609d74eec3ccebafc73fa875ec58445471765是一个合并但没有给出-m选项.
致命:恢复失败

作为一个新的git用户,请你解释一下发生了什么以及我要做些什么来解决这个问题.

我想恢复到c14609d74eec3ccebafc73fa875ec58445471765运行时看到的某个commit()git log.

man*_*lds 30

您正在尝试还原合并提交,并且git不知道要还原到哪个父级.将-m允许我们选择选择哪个父母.请参阅合并提交并记下要转到的父级.父信息可以在git log,例如:

提交d02ee0f2179def10277f30c71c5d6f59ded3c595

合并:dd3a24c 2462a52

并运行:

git revert <hash> -m 1
Run Code Online (Sandbox Code Playgroud)

其中1表示父母编号1.

如果你想恢复那个承诺,做到:

git reset --hard <hash>
Run Code Online (Sandbox Code Playgroud)

了解文档之间的差异,git revertgit reset确定您想要的文档.git revert是更安全的选择,但并不真正做你想要的.它只是恢复(一组)提交的更改.git reset让您移动到历史记录中的特定提交,并将重写您的历史记录.

  • 你如何确定哪个父母是哪个?即如何知道输入数字`1` vs`2`或其他? (5认同)
  • @MatthewJamesBriggs 我发现这个有用的答案“你如何确定哪个父母是谁?” [https://blog.experteer.engineering/what-are-parents-on-git-merge-commits.html](https://blog.experteer.engineering/what-are-parents-on-git-merge-提交.html) (5认同)
  • manojlds,你跑去查看父母的完整`git log`命令是什么? (2认同)