0

我对本地存储库中的上游项目进行了一些更改。我最初将上游仓库复制到我的本地项目中。现在我想获取一系列提交并将其应用于上游存储库。我可以用补丁来做到这一点,但我想知道是否可以使用子树合并来做到这一点。

所以,更具体地说:

# project structure
root
  projectB
  ...

# history
HEAD
C
B
A

如果我将 projectB 的 repo 添加为远程,签出它的一个分支,我如何将更改 B 和 A 合并到这个分支中,在我的主 repo 中留下其他更改,最后将分支推回 projectB 的远程?

想法?

4

1 回答 1

1

子树拆分应该做你想做的事。

git subtree split --prefix=projectB --rejoin --branch=project-B-split

将创建一个名为 project-B-split 的新分支,其中包含仅影响 projectB 内文件的提交。这应该有利于推动项目B的主人 - 在一些合适的变基之后并且(可能)正如帕特里克在评论中建议的那样,如果你没有一个干净的副本,一些樱桃采摘。这取决于您最初是如何获得 projectB 源的 - 特别是您是否将其历史记录带入您的存储库。

于 2012-10-25T09:20:45.753 回答