没有互联网的远程主机上的git update / patch

时间:2014-06-06 06:21:44

标签: git deployment rsync patch fabric

我有一个访问权限的主机抛出了vpn,例如:10.0.0.2 该主机无法访问我的git存储库,也无法访问互联网。

我不想一直复制完整项目的zip存档,并将其解压缩到10.0.0.2。

git format-patch mybranch --root --stdout > ~/Downloads/mypatch.patch 创建了我的1gb补丁,我无法应用它。 git format-patch -1 HEAD 在这里,我无法理解我需要多少提交,以及如何应用它们。

所以问题是:如何在该主机上更新我的项目?

编辑:

感谢rsync的建议,我写道 一点点期待脚本:

#!/usr/bin/expect -f
set timeout 2
set USER "REMOTE_HOST_USER"
set PASS "REMOTE_HOST_PASSWORD"
set HOST "REMOTE_HOST" # in my case 10.0.0.2

spawn rsync -a --stats . $USER@$HOST:/path/to/project/on/remote/host/;
expect {
    "(yes/no)?*" {
    send "yes\r"
    }
}
expect "word:"
send "$PASS\r"
interact

此脚本同步远程主机上的当前文件夹和文件夹。

1 个答案:

答案 0 :(得分:2)

您可以 use git bundle ,生成一个文件,有点像存档,除非它是一个git repo,您​​可以从中提取。

你甚至可以生成一个增量包,以便只复制最后几次提交(仍作为一个文件),并拉出增量包的形式。