首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过"sneakernet“复制git回购

通过"sneakernet“复制git回购
EN

Stack Overflow用户
提问于 2020-04-21 12:52:25
回答 2查看 61关注 0票数 2

我在VPS (虚拟私有服务器)上创建了一个裸露的git。然后,我对我的一台本地机器执行了一个git clone,称为local1,添加了大量文件,提交了它们,并执行了git push。所以我曾经通过互联网传输过这些文件(总计几个GB)。

现在我想在其他一些本地机器上进行同样的回购,但我希望避免再次通过互联网将所有这些文件传输回来。我可以不使用git clone,只需将local1的回购复制到USB驱动器上,然后将其复制到其他机器-- local2local3等等?还是有更好的方法来做这件事?

编辑:所有相关的机器都连接到互联网上。一旦设置了repos,我通常计划使用git pushgit pull,因为我一次只修改几个文件。这只是我所关心的全部文件的初始传输。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-21 13:03:20

是的,您只需复制整个目录(确保复制包含所有"git元数据“的隐藏.git目录)。

或者,您可以从一台本地机器克隆到另一台机器:

代码语言:javascript
复制
git clone local1-ip:/path/to/repository

最后,您只需更改原产地的url以指向您的VPS:

代码语言:javascript
复制
git remote set-url origin VPS:url.git
票数 3
EN

Stack Overflow用户

发布于 2020-04-21 13:20:41

复制.git子目录的方法可以很好地创建克隆,但是您可以实现它(文件浏览器、tarcpscp等等)。然而,这留下了一个问题:传输更新。

有两种有效传递新提交的方法:

如果两台机器都连接到互联网上,您可以从这两台机器上按/拉到synchronize.

  • If --第二台机器是气隙式的,您仍然可以通过使用git bundlegit bundle create <path/to/new/file/on/stick.bundle> <old-master>..master<old-master>master之间的所有提交打包到一个捆绑文件中,从而有效地摄取新的提交,然后您可以通过运动鞋将该文件传输到气隙机器。后续的git bundle unbundle ...git fetch ...允许您在存储库中摄取新的提交。

(我总是使用git bundle unbundle ...,因为我在git fetch上遇到了一些问题,不能像预期的那样工作。但是,git bundle unbundle不会为您更新任何引用,如果使用此变体,则需要手动修复分支。它确实是一个管道类型的命令,正如手册中正确指出的那样。)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61344016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档