我如何用管道将git克隆到档案中(tar或gzip)?

问题描述 投票:14回答:2

我想为远程托管的git仓库做一个简单的备份脚本。在脚本中,我有几行字,目前看起来像这样。

git clone git@server:repo.git $DEST
tar czvf repo.tgz $DEST
rm -rf $DEST

有没有办法让这一切在一行中发生?我可以把 git 克隆放到 tar 命令中吗?我不需要克隆的目录,我只需要它的压缩档案。

我试着做了一些实验,但似乎搞不清楚语法。

git gzip pipe tar backup-strategies
2个回答
16
投票

不,你不能只用管道 git clone 因为它不会把它写到标准输出。那你为什么需要单行本呢?它们很适合吹嘘你能用一行字做一些很酷的事情,但在现实世界中并不理想。

你可以做一些像下面这样的事情,但你不会得到这样的结果。.git 如法炮制 git clone :

git archive --format=tar --remote=git@server:repo.git master | tar -xf -

来自 git archive 手册

--remote=<repo>

    Instead of making a tar archive from the local repository, retrieve a tar archive from a remote repository.

4
投票

您可以使用 git archive 为此目的 --remote 选项,你可以用它来创建zip或tar或任何你喜欢的东西。你可以用管道来创建zip或tar或任何你喜欢的东西。

请看 git-archive(1) 手册页。

© www.soinside.com 2019 - 2024. All rights reserved.