Git Cherry-Pick 和 Git Revert 有啥区别? [关闭]
Posted
技术标签:
【中文标题】Git Cherry-Pick 和 Git Revert 有啥区别? [关闭]【英文标题】:What is the Difference Between Git Cherry-Pick and Git Revert? [closed]Git Cherry-Pick 和 Git Revert 有什么区别? [关闭] 【发布时间】:2012-10-16 15:53:29 【问题描述】:我仍然发现 git revert 的行为有些令人困惑。在经历了巨大的痛苦和误解之后,我了解到 git revert negates 一个特定的提交,而不是恢复 to 该提交。到目前为止,我还没有使用过 git cherry-pick。
你能详细说明这两个 git 命令吗?您喜欢何时以及如何使用它们?
【问题讨论】:
请先尝试搜索互联网,然后再要求在此处复制文档。在这里,您有来自“git commands”搜索的 Google 结果第一页的结果:快速参考gitref.org 和完整的命令参考git-scm.com/book/commands - 我的评论指的是第一次编辑之前的原始问题“你能详细说明每个 git 命令.. .",抱歉,如果您的意图是 Emil 在他的编辑中修复的内容。 @MBO:是的,我最初的问题是:“您能否详细说明每个 git 命令以及您喜欢何时以及如何使用它?”我已经多次查看谷歌搜索,并且确实有 4 本书关于 git。最初使用 git revert 真的很痛苦,因为在 1-2 个月内,我理解它意味着恢复到特定的提交,我无法理解它产生的奇怪行为。如果在 HEAD 和我要恢复的提交之间有临时提交,我仍然觉得特别令人困惑。 【参考方案1】:git cherry-pick
就像“将指定的提交转换为补丁并在此处应用此补丁”。
git revert
就像“将指定的提交转换为补丁,‘反转’这个补丁(就像在patch -R
中一样)并在此处应用它”。
这两个命令都可能导致冲突。
Cherry-pick 用于未合并(当前提交的父链接无法访问)提交。 Revert 通常用于合并提交。
撤消恢复提交需要进行另一个恢复提交(导致提交消息,如“Revert of 'Revert of ...'”),而不是挑选恢复提交(因为它被认为已经合并)。
【讨论】:
以上是关于Git Cherry-Pick 和 Git Revert 有啥区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Git Cherry-Pick 和 Git Revert 有啥区别? [关闭]
Git应用详解第九讲:Git cherry-pick与Git rebase