上游存储库在 github 上,比如“droid”。我分叉了它并在我的叉子中添加了一些提交。但是上游仓库“droid”被移动到另一个现有仓库的子文件夹,比如“allRepo”,现在它在“allRepo/droid”中。我也分叉了。我可以将我的提交从 my_fork_1 移动到 my_fork_2(或本地),并继续使用 my_fork_2,它是“allRepo”的分支吗?
问问题
207 次
2 回答
3
在某个子目录(子树)中将一些以前单独的项目(具有自己的单独存储库和单独的历史记录)作为某个较大项目的一部分是子树合并,例如在 git 文档中的“如何使用子树合并策略” HOWTO 中进行了描述、“Pro Git”一书(CC-NC-SA 3.0 许可证)中的“Git 工具 - 子树合并”一章,以及“使用子树合并” GitHub 帮助页面(在高级 Git 部分)。
请注意,您只需要设置一次子树合并;从子项目回购到整个项目回购的所有未来合并都将自动应用。或者,您可以在将提交合并到其中后切换到使用整个项目存储库。
还有一个git subtree
命令,从 git 1.7.11开始在contrib
区域可用
于 2013-05-07T12:20:28.680 回答
2
一种解决方案,不是将第一个 git 的差异应用到第二个
在第一个仓库中:
git diff <hash> <hash>~1 > patch
在第二:
git apply /some/path/to/the/patch
git commit
并使用以下命令获取第一个 repo 的消息:
git log <hash> -n 1 | tail -n+5 | sed -e "s/^ *//"
于 2013-05-07T09:20:01.937 回答