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

git 学习(git fetch/ git pull/ git rebase/ git cherry-pick的区别)

git不同分支局部代码合并 git cherry-pick

git中cherry-pick啥意思

git , cherry-pick