两次提交之间的Git向后樱桃挑选差异

时间:2017-05-22 18:08:02

标签: git git-rebase git-cherry-pick

我有以下提交:

repo dev---(222)---v1.0(111)

repo orig---v2.0(333)---

如何在提交111和222之间在repo A中挑选diff(反向),然后使用git将结果提交到repo B?

我有一个带有更改的软件仓库(dev)(提交222),但更改是在与原始软件仓库(orig)无关的历史记录上完成的。

我做了以下(我的开发回购是“dev”,原始回购是“orig”):

  • 将原始仓库添加为“dev”repo
  • 的远程跟踪
  • 签出了“orig”repo commit“v1.0(111)”
  • 将更改提交到“dev”repo

现在我对我的更改有反向差异: git diff v1.0(111) (222)

我想在“orig”回购中挑选这些变化并重新加入v2.0(333)。

但是我确实读过“How to cherry pick a range of commits and merge into another branch“cherry-pick A..B”形式,A应该比B.更早。 如果命令错误,命令将无声地失败。

如何使用git?

1 个答案:

答案 0 :(得分:1)

首先,cherry-pick命令将是

int

您需要在git checkout 333 git cherry-pick -n v1.0~...222 git commit -m "apply diff between 1.0 and 222" 的父级(由A...B排除)和v1.0之间挑选A

其次,由于您只希望将一个提交应用于333,因此请使用B选项。

  

此标志应用必要的更改来挑选您的工作树和索引的每个命名提交,而不进行任何提交。