Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git归档与cp-R_Git_Capistrano_Vlad Deployer - Fatal编程技术网

git归档与cp-R

git归档与cp-R,git,capistrano,vlad-deployer,Git,Capistrano,Vlad Deployer,如果我有一个git存储库的克隆,作为capistrano/vlad风格部署的远程服务器上的缓存副本,那么执行以下操作是否更好) 或B) 为了澄清,存储库已经在远程服务器上,我只想在部署期间将特定版本复制到同一服务器上的releases目录。a) 您可以节省传输.git目录的网络开销,这可能相当大,具体取决于有多少历史记录和对象不在当前头中 如果您想在远程端拥有一个实际的git存储库,那么最好使用一个真正的存储库,只需更改增量即可。还有人可能已经为您编写了代码 我在Subversion中使用它,

如果我有一个git存储库的克隆,作为capistrano/vlad风格部署的远程服务器上的缓存副本,那么执行以下操作是否更好)

或B)

为了澄清,存储库已经在远程服务器上,我只想在部署期间将特定版本复制到同一服务器上的releases目录。

a)

您可以节省传输.git目录的网络开销,这可能相当大,具体取决于有多少历史记录和对象不在当前头中


如果您想在远程端拥有一个实际的git存储库,那么最好使用一个真正的存储库,只需更改增量即可。

还有人可能已经为您编写了代码

我在Subversion中使用它,它对我很有效。

我想说的是,实际上

rsync -avP /local/repo/* server:/remote/repo
只要可以跳过repo中的所有点文件,而不仅仅是
.git
,就可以了。如果只想跳过
.git
,则需要
-f
选项和手册页


我爱你。工作非常好,大多数时候你可以像使用scp一样使用它

都不是

更好的方法是:

  • git fetch
    缓存
  • 将缓存克隆到当前目录(启用
    --无签出
    选项)
  • 签出所需的提交

进行本地克隆时,Git使用硬链接。这意味着,在您修改一个文件之前,您可以进行1000次部署,并且(实际上)只使用一次所需的空间。这种方式的存档或rsync速度也快得多。

我无法编辑,但第一句末尾有一个输入错误。大概应该是“这样做更好吗?”啊哈;正是我要自己写的答案:rsync。起初我开始使用git归档版本,但意识到它缺少git子模块。因此,使用rsync是我没有想到的一个很好的选择。谢谢奥托(顺便说一下)和诺曼!
cp -R cached-copy #{destination} && rm -Rf #{destination}/.git
rsync -avP /local/repo/* server:/remote/repo