git - 为什么 git 在还原推送到远程分支的合并提交时不提供默认值?
问题描述
据我所知,在大多数情况下,我们都会这样做git revert -m 1 <merge-hash>
。为什么他们在恢复合并提交时不默认为第一个父级?背后有什么原因吗?
另外,在什么情况下我们必须使用-m 2
?
解决方案
Git revert 通常对只有一个父级的提交进行操作。通过不提供默认父级,git 确保您知道您正在恢复与 2 个父级的提交,并且已经考虑过这意味着什么。(我只是猜测他们为什么不默认为-m 1
.)
-m 2
如果要恢复对另一个分支所做的更改,则需要使用。例如,假设您将 branch 合并feature
到 branch master
。然后,如果您想恢复该合并提交,您通常会feature
使用-m 1
. (还原的最终结果是主分支上的先前提交。)相反,如果您这样做了-m 2
,您将“将主分支从功能分支中还原”。这很少有意义(因为最终状态将与HEAD
您的feature
分支的当前状态相同,但有一些额外的提交应用了一些更改然后撤消它们)。(还原的最终结果将是功能分支上的先前提交。)
推荐阅读
- javascript - 如何在分隔的输入字段上禁用 javascript 效果?
- aframe - AR.js,对象实体没有出现在 NFT 标记的顶部并且尺寸非常小
- encryption - 在 GNU 无线电中需要 AES 加密
- mysql - 如何在 mysql/mariadb 中查询具有相同 id 的多行
- java - 同一类的两个对象实例在不同的 JVM 进程中运行
- spring-batch - 在spring-batch中动态读取文件
- maven - 如何仅部署多模块 Maven 项目的一部分?
- python - 为什么我的网站的下半部分没有显示?
- vba - VBA用用户表单文本框和组合框替换Outlook html模板中的所有占位符
- firebase - 如何使用 Cloud Firestore 存储只有他们可以读取、写入和删除的私有用户数据?