1

以下是演示该问题的详细信息:

  1. 人 A 分叉了我的项目

  2. 人 A 向他的 fork 提交内容(8 次提交++)

  3. 人员 A 忘记拉取上游更改

  4. 人 A 向他的分叉提交其他内容(4 次提交)

我想要做的是:仅从他那里提取最后 4 次提交(参见第 4 点)。我听说git cherry-pick是这个命令,但我不知道如果有太多冲突需要解决,我该怎么做,我什至不想取消他所做的每一个提交。

我已经尝试过的东西:

  1. 把他所有的东西都拉到另一个分支

  2. 尝试一些樱桃挑选命令(当然没有人工作,因为有很多冲突等)

  3. git fetch 并尝试cherry-pick(也没有运气)。

考虑到我有:存储了他的远程 URL 和他的东西的分支。

4

1 回答 1

4

你可以做一个范围樱桃挑选:

 git cherry-pick his-remote/branch-name~4..his-remote/branch-name

或使用变基:

 git rebase --onto your-branch his-remote/branch-name~4 his-remote/branch-name

无法避免冲突。你需要解决它们。如果您在 Windows 上,Beyond Compare 或 P4Merge 是两个可以帮助解决棘手的冲突的方法。

根据您所做的更改数量,您可能希望重置回共同点,快进合并他的更改并在此基础上重新调整您的更改,因为您更熟悉您在提交中所做的事情和这可能会使解决冲突变得容易得多。

于 2012-10-28T19:27:48.570 回答