通过“复制git回购协议”;sneakernet“;
我在我的VPS(虚拟专用服务器)上创建了一个裸git repo。然后,我对我的一台本地计算机进行了一次通过“复制git回购协议”;sneakernet“;,git,Git,我在我的VPS(虚拟专用服务器)上创建了一个裸git repo。然后,我对我的一台本地计算机进行了一次git克隆,称之为local1,添加了大量文件,提交了它们,并进行了git推送。所以我曾经通过互联网传输过这些文件(总共几GB) 现在,我想在其他一些本地机器上拥有相同的回购协议,但我想避免再次通过互联网将所有这些文件传输回去。我是否可以将repo从local1复制到USB驱动器上,然后将其复制到其他机器local2,local3,而不是使用git clone?还是有更好的方法 编辑:所有相关机
git克隆
,称之为local1,添加了大量文件,提交了它们,并进行了git推送
。所以我曾经通过互联网传输过这些文件(总共几GB)
现在,我想在其他一些本地机器上拥有相同的回购协议,但我想避免再次通过互联网将所有这些文件传输回去。我是否可以将repo从local1复制到USB驱动器上,然后将其复制到其他机器local2,local3,而不是使用git clone
?还是有更好的方法
编辑:所有相关机器都已连接到internet。一旦建立了回购协议,我计划正常地
git push
和git pull
,因为我一次只修改几个文件。这只是我关心的完整文件集的初始传输。是的,您可以复制整个目录(确保复制包含所有“git元数据”的隐藏.git
目录)
或者,您可以从一台本地计算机克隆到另一台本地计算机:
git clone local1-ip:/path/to/repository
最后,您只需更改origin的url即可指向您的VPS:
git remote set-url origin VPS:url.git
是的,您可以复制整个目录(确保复制包含所有“git元数据”的隐藏
.git
目录)
或者,您可以从一台本地计算机克隆到另一台本地计算机:
git clone local1-ip:/path/to/repository
最后,您只需更改origin的url即可指向您的VPS:
git remote set-url origin VPS:url.git
复制
.git
子目录的方法可以很好地创建克隆,但是您可以实现它(文件浏览器,tar
,cp
,scp
,等等)。然而,这留下了一个问题:传输更新
有两种方法可以有效地传输新提交:
- 如果两台机器都连接到internet,您可以从两台机器上推/拉以同步
- 如果第二台机器空着,您仍然可以通过使用
高效地接收新提交:git bundle
将git bundle create..master
和
之间的所有提交打包到一个捆绑文件中,然后您可以通过sneaker net将其传输到气隙机器。后续的master
或git bundle解绑…
允许您将新提交接收到存储库中 (我总是使用git fetch…
,因为我在git bundle unbundle…
无法按预期工作时遇到了一些问题。但是,git fetch
不会为您更新任何引用,如果使用此变量,您需要手动修复分支。正如手册页正确指出的那样,它实际上是一个管道类型的命令。)git bundle unbundle
.git
子目录的方法可以很好地创建克隆,但是您实现了它(文件浏览器,tar
,cp
,scp
,等等)。然而,这留下了一个问题:传输更新
有两种方法可以有效地传输新提交:
- 如果两台机器都连接到internet,您可以从两台机器上推/拉以同步
- 如果第二台机器空着,您仍然可以通过使用
高效地接收新提交:git bundle
将git bundle create..master
和
之间的所有提交打包到一个捆绑文件中,然后您可以通过sneaker net将其传输到空隙机器。随后的master
或git bundle解绑…
允许您将新提交接收到存储库中 (我总是使用git fetch…
,因为我在git bundle unbundle…
无法按预期工作时遇到了一些问题。但是,git fetch
不会为您更新任何引用,如果使用此变量,您需要手动修复分支。正如手册页正确指出的那样,它实际上是一个管道类型的命令。)git bundle unbundle