【问题标题】:Can I cherry pick multiple commits from different branches?我可以从不同的分支中挑选多个提交吗?
【发布时间】:2020-04-10 08:24:40
【问题描述】:

我有 3 个分支,m 是 master 的负责人,而 gh 是单个提交分支。此时我无法进行变基或合并。我想要的是在 master 之上挑选 gh 中的更改而不提交它们,只是让它们不上演。这三个之间没有冲突。但是,我只能选择gh。当我尝试挑选另一个时,樱桃挑选失败:

error: your local changes would be overwritten by cherry-pick.
hint: commit your changes or stash them to proceed.
fatal: cherry-pick failed

可以this吗?

【问题讨论】:

  • 你可以隐藏它们而不是提交。
  • “我想要的是在 master 之上挑选 g 和 h 的变化而不提交它们,只是让它们不上演”自我矛盾。樱桃采摘是一种承诺。你必须在开始之前提交。您可以提交,然后樱桃挑选 g,然后樱桃挑选 h,解决任何合并冲突,然后重置索引。但目前尚不清楚您为什么要这样做。提交是好的,也不错。

标签: git cherry-pick


【解决方案1】:

您应该在您尝试挑选某些内容的分支上提交您的更改。不应存在​​任何活动更改,然后您将能够从任何分支中挑选任意数量的提交

【讨论】:

    【解决方案2】:

    首先,查看您的git status,工作目录中的某些文件已更改或索引不清晰。比您可以使用 git stash 隐藏 stash 中的更改或重置它们或提交它们。

    如果您想将来自 gh 分支的提交合并到 m 中,则不要这样做

    1)

    git checkout m
    git cherry-pick <commit_from_g>
    git cherry-pick <commit_from_h>
    git rebase -i #squash last to commits into one
    

    2)

    git rebase m h
    git rebase h g
    git checkout g
    git rebase -i #squash last to commits into one
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 2013-06-12
      • 2020-12-11
      • 1970-01-01
      • 2016-05-30
      • 2010-12-12
      相关资源
      最近更新 更多