在工作中,我们在内部网络中有几台服务器(与Internet分离),但是它们使用github.com上托管的项目。到目前为止,我们的处理方式是不时地手动克隆存储库,然后使用USB设备将项目手动传输到本地网络。有时,这个项目可能很大-数十GB,并且传输非常缓慢。所以我的问题是:
我可以每次仅以某种方式转移必要的提交吗?
答案 0 :(得分:1)
Git独立维护每个存储库,并允许您根据需要将它们同步在一起。 “中央”回购的想法是用户的约定。就git而言,所有仓库都是同等的“中央”。
考虑到这一点,您可以执行以下操作:
要更新:
硬盘驱动器上的存储库会将GitHub识别为上游。隔离服务器上的存储库会将外部驱动器识别为上游驱动器。
这与您现在正在执行的操作非常相似,但有一个关键的区别。由于您使用git来管理历史记录,因此仅会传输不同的提交,从而使更新部分变得非常快。
当然,这将有前期费用,但您没有发生任何事:
答案 1 :(得分:1)
与其每次都克隆第三方项目的整个存储库,不如考虑使用“浅层克隆”,它只能克隆最后一次提交(达到一定深度,例如1)。
您还可以从github克隆单个分支(例如master)。
关于此的文章很多,例如,您可以阅读有关浅克隆here的信息。
想到的另一个有趣的解决方案是git archive command,它允许从命名树中创建文件档案。