2013-05-07 99 views
1

上游存储库位于github上,称为“droid”。我分叉它并在我的叉子中添加一些提交。 但是上游回购“droid”被移到了另一个现有回购的子文件夹中,称为“allRepo”,现在它在“allRepo/droid”中。我也分了它。我可以将我的提交从my_fork_1移动到my_fork_2(或本地),并继续使用my_fork_2,它是“allRepo”的分支?将提交从一个git存储库应用到另一个存储库的子文件夹

回答

3

使一些原本独立的项目(有它自己独立的仓库和独立的历史)一些子目录(子树)的一些大项目的一部分是子树合并,并且如描述在How to use the subtree merge strategy HOWTO混帐文档中,Git Tools - Subtree Merging在 “临Git的” 一书(CC-NC-SA 3.0许可)章,并Working with subtree merge GitHub的帮助页面(在高级Git的部分)。

请注意,您需要设置子树合并只有一次;所有未来从子项目回购合并到整个项目回购将自动应用。或者你可以在合并你的提交后切换到使用完整的项目回购。

还有git subtree命令,available in contrib area因为GIT中1.7.11

2

一种解决方案,是不是从第一git的应用差异到第二个

在第回购:

git diff <hash> <hash>~1 > patch 

在第二:

git apply /some/path/to/the/patch 
git commit 

,并获得第一个回购的消息用以下命令:

git log <hash> -n 1 | tail -n+5 | sed -e "s/^ *//" 
相关问题