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