[英]Apply commits from one git repository to subfolder of another repository
上游存储库位于github上,称“ droid”。 我分叉了它,并在fork中添加了一些提交。 但是上游仓库“ droid”已移至另一个现有仓库的子文件夹,例如“ allRepo”,现在位于“ allRepo / droid”中。 我也分叉了。 我可以将提交内容从my_fork_1移动到my_fork_2(或本地),然后继续使用my_fork_2(即“ allRepo”的分支)工作吗?
在子目录(子树)中将一些以前单独的项目(具有自己的单独存储库和单独的历史记录)作为某个较大项目的一部分是子树合并 ,例如,在git文档中的“ 如何使用子树合并策略 ”中进行了介绍, “ Pro Git”书中的“ Git工具-子树合并 ”一章(CC-NC-SA 3.0许可证)和“ 使用子树合并 ” GitHub帮助页面(在“高级Git”部分中)。
注意,您只需要设置一次子树合并。 从子项目存储库到整个项目存储库的所有将来合并都将自动应用。 或者,您可以在将提交合并到整个项目存储库之后切换为使用整个项目存储库。
从git 1.7.11 开始, contrib
区域也有git subtree
命令可用
一种解决方案是不将第一个git的差异应用于第二个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/^ *//"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.