当前位置:  开发笔记 > 开发工具 > 正文

如何合并包含另一个目录子集的分支的更改?

如何解决《如何合并包含另一个目录子集的分支的更改?》经验,为你挑选了0个好方法。

我会尽量保持这个简短.

我们有一个git存储库,它充当SVN镜像(由BitBucket管理).这个repo包含公司的每个项目,从一开始就让每个开发人员克隆它不是一个合理的请求(25 + 33GiB完全克隆和15 + GiB浅)但是即便如此,我们也不需要完全克隆整个存储库,只是其中的一部分目录.

使用git-subtree,我设法拆分了所有感兴趣的目录,并计算我们可以使用git-subtree add将这些目录添加回我们的本地存储库中.此过程对svn存储库是透明的.这很好,尺寸更易于管理(9 + 6GiB完整克隆和8GiB浅).问题是我不知道我们如何在这些"部分克隆"中进行更改并将它们合并回主分支.

我以为我们能够使用通常的拉取请求来获取它们,但由于树枝的树不同,它的行为并不像我想要的那样(丢失的目录被视为删除).我只想合并克隆目录的更改,并保持其他不变.

我不认为使用稀疏结账会有帮助,因为我们仍然必须克隆完整的回购以使其工作,这正是我想要避免的.

是否有一些命令组合可以用来使这一切都有效?


这是我用来分割目录和检查感兴趣的目录的(修改过的)脚本:

split_projects.sh
我使用git-subtree来拆分和重新加入目录,并使用git-replace来提高resplitting的速度(只处理新的提交).请注意,rejoin 不会提交给主repo(我不愿意尝试提交,尤其是使用svn镜像).

initial_setup.sh
这是准备本地仓库的脚本.要被Windows用户使用,其中许多人对git或命令行工具不是很有经验.

checkout_projects.sh
实际的结帐脚本.

还有一个从分割子目录中获取更新,但我不在此处包含它.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有