git revert <commit_hash>单独是行不通的。-m必须指定,我对此感到很困惑。
git revert <commit_hash>
-m
以前有人经历过吗?
该-m选项指定 父编号 。这是因为合并提交有多个父级,并且 Git 不会自动知道哪个父级是主线,哪个父级是您要取消合并的分支。
当您在 的输出中查看合并提交时git log,您将看到其父项列在以 开头的行上Merge:
git log
Merge
commit 8f937c683929b08379097828c8a04350b9b8e183 Merge: 8989ee0 7c6b236 Author: Ben James <ben@example.com> Date: Wed Aug 17 22:49:41 2011 +0100 Merge branch 'gh-pages' Conflicts: README
在这种情况下,git revert 8f937c6 -m 1将为您提供原样的树8989ee0,git revert -m 2并将恢复原样的树7c6b236。
git revert 8f937c6 -m 1
8989ee0
git revert -m 2
7c6b236
为了更好地理解父 ID,您可以运行:
git log 8989ee0
和
git log 7c6b236