繁体   English   中英

为什么在还原推送到远程分支的合并提交时git不提供默认值?

[英]Why does git do not provide a default when reverting a merge commit that is pushed to the remote branch?

据我所知,在大多数情况下,我们执行git revert -m 1 <merge-hash> 为什么在还原合并提交时它们不默认为第一父级? 有什么原因吗?

另外,在什么情况下我们必须使用-m 2

Git还原通常只对单亲提交进行操作。 通过不提供默认的父级,git可以确保您知道您正在还原2个父级的提交,并且已经考虑了这意味着什么。 (我只是在猜测为什么它们不默认为-m 1

如果要恢复对另一个分支所做的更改,则需要使用-m 2 例如,假设您将分支feature合并到分支master 然后,如果您想还原该合并提交,通常可以使用-m 1还原master分支中的feature分支“ out”。 (还原的最终结果是在master分支上的前一次提交。)相反,如果您执行-m 2 ,则将“将master退出功能分支”。 这很少有道理(因为结束状态将与feature分支的当前HEAD相同,但是具有一些额外的提交,这些提交会应用某些更改,然后撤消它们)。 (还原的最终结果将是对功能分支的上一次提交。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM