7

我尝试合并两个回购,产生一个平坦的(也就是交错的)历史。我按照“历史重写:”下的https://stackoverflow.com/a/14839653/188108的方式执行此操作。

要合并的两个分支在“master”和“src/master”中。然后,我写:

$ git checkout --orphan new-master
$ git cherry-pick 9d325d6d 3f4c52ba
error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: cherry-pick failed
$ git cherry-pick 9d325d6d && git cherry-pick 3f4c52ba
[new-master 10f0277] Initial revision.
 7 files changed, 194 insertions(+)
 create mode 100644 __init__.py
 create mode 100644 manage.py
 create mode 100644 samples/__init__.py
 create mode 100644 samples/models.py
 create mode 100644 samples/views.py
 create mode 100644 settings.py
 create mode 100644 urls.py
[new-master 08e083c] Fixed field name in SixChambersLayer.  Added Sample.current_place.
 1 file changed, 2 insertions(+), 1 deletion(-)

那么,为什么第一个cherry pick 命令失败了,但是split 命令有效呢?我使用 git 1.9.1。

4

1 回答 1

1

请尝试:

git cherry-pick 9d325d6d^..3f4c52ba

正如我在“如何挑选一系列提交并合并到另一个分支”中提到的:

在 " cherry-pick A..B" 形式中,A应该比B.
如果它们的顺序错误,该命令将静默失败。

如果您想B通过D(包括)选择范围,那将是B^..D.

于 2014-08-24T12:48:12.453 回答