我想为远程托管的git仓库做一个简单的备份脚本。在脚本中,我有几行字,目前看起来像这样。
git clone git@server:repo.git $DEST
tar czvf repo.tgz $DEST
rm -rf $DEST
有没有办法让这一切在一行中发生?我可以把 git 克隆放到 tar 命令中吗?我不需要克隆的目录,我只需要它的压缩档案。
我试着做了一些实验,但似乎搞不清楚语法。
不,你不能只用管道 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.
您可以使用 git archive
为此目的 --remote
选项,你可以用它来创建zip或tar或任何你喜欢的东西。你可以用管道来创建zip或tar或任何你喜欢的东西。
请看 git-archive(1) 手册页。