【问题标题】:git merge --no-commit vs git cherry-pick --no-commitgit merge --no-commit vs git cherry-pick --no-commit
【发布时间】:2014-01-17 04:38:36
【问题描述】:

git merge --no-commitgit cherry-pick --no-commit 有什么区别吗?

如果我在这两个命令之后提交,历史记录有什么不同吗?

【问题讨论】:

    标签: git git-merge git-cherry-pick


    【解决方案1】:

    如果你在git merge --no-commit 之后提交,你实际上会得到一个合并提交。而在git cherry-pick --no-commit 之后,您将获得一个单亲提交。

    因此,是的,这两个命令之间存在差异。

    特别是如果你有类似的东西

    A -- B -- C
     \        L HEAD
      \
       -- D -- E
    

    如果你cherry-pick 提交E,你将不会得到提交D 的修改。而如果你merge,你会得到两者。

    【讨论】:

      【解决方案2】:

      git-merge 用于将两个或多个开发历史连接在一起,git-cherry-pick 用于应用由一些现有提交引入的更改。

      那么,一旦你在执行git-merge 后提交,Git 就会添加所谓的merge commit。另一方面,当cherry-pick(ing) 提交时,git 会将这些提交引入的更改应用到工作树的顶部(两个或多个分支之间没有融合)。换句话说,提交被克隆并放在你的分支之上。

      查看Git Cherry-pick vs Merge Workflow 以了解基于回购维护者实际需求的差异。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-28
        • 1970-01-01
        • 2021-08-07
        • 2016-02-13
        • 2020-09-15
        • 2012-03-24
        • 1970-01-01
        • 2018-03-27
        相关资源
        最近更新 更多