2012-10-14 93 views
0

我对本地存储库中的上游项目做了一些更改。我原本平淡地将上游回购复制到我的本地项目中。现在我想抓住一系列提交并将其应用于上游回购。我可以用补丁来做到这一点,但我想知道是否可以使用子树合并来完成此操作。Git:合并一系列本地提交到子树分支

所以,更具体:

# project structure 
root 
    projectB 
    ... 

# history 
HEAD 
C 
B 
A 

如果我添加项目B的回购作为远程结账它的一个分支,我该如何合并改变B和A到这个分支,离开落后于其他变化我主要回购,最后推动分支回到projectB的远程?

想法?

+1

采摘樱桃是很有可能你在找什么 http://stackoverflow.com/questions/1994463/how-to-cherry-pick-a-range-of-commits-and-merge-into -otherother-branch – Patrick

回答

1

子树分裂应该做你想做的。

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

将创建一个名为project-B-split的新分支,其中包含仅影响projectB内文件的提交。这应该是推荐给projectB的主人 - 经过一些合适的重新绑定和(可能),如帕特里克在评论中所建议的一些樱桃采摘,如果你没有一个干净的副本。这取决于你最初如何获得projectB源代码 - 你是否特别将自己的历史记录带入了你的repo。

+0

+1我将在下次参与该项目时检查这一点。我会确认,如果这是我正在寻找的(听起来很有希望) –

相关问题