Comment puis-je pipe un git clone aux archives (tar, gzip)
Je suis en train de faire un simple script de sauvegarde pour mon hébergée à distance git repos. Dans le script que j'ai quelques lignes qui actuellement ressembler à ceci:
git clone git@server:repo.git $DEST
tar czvf repo.tgz $DEST
rm -rf $DEST
Est-il un moyen de faire cela, tout se fait en une seule ligne? Puis-je pipe le git clone dans la commande tar? Je n'ai pas besoin cloné répertoire, je veux juste l'archive compressée.
J'ai tenté quelques expériences, mais n'arrive pas à comprendre la syntaxe.
OriginalL'auteur bryan kennedy | 2011-05-13
Vous devez vous connecter pour publier un commentaire.
Pas vous ne pouvez pas simplement pipe
git clone
car il n'a pas l'écrire sur la sortie standard. Et pourquoi avez-vous besoin d'un one-liner? Ils sont parfaits pour se vanter que vous pouvez faire quelque chose de cool dans une seule ligne, mais pas vraiment l'idéal dans le monde réel.Vous pouvez faire quelque chose comme ci-dessous, mais vous n'obtiendrez pas de
.git
comme vous le feriez dans ungit clone
:De
git archive
manuel--remote
option pourgit archive
nécessite que le serveur a une option activée pour le permettre. Par défaut, il n'est pas activé.Si je comprends bien git archive n'est utile que comme une sauvegarde de tous les fichiers contenus dans un repo git. Droit? Ce que je voudrais faire est de créer une sauvegarde complète de l'opération et toutes les informations de gestion des versions figurant à l'intérieur. Donc, je pense que j'ai encore envie d'utiliser git clone.
Comme à le faire sur une seule ligne, oui, c'est "cool" pour sûr. Cependant, j'ai été aussi en train d'essayer d'empêcher le clonage d'un grand pensions de la copie de la compression de l'. Et puis suppression de cette copie. J'essaye d'être efficace avec des écritures sur disque, mais puisque vous dites que git clone n'est pas stdout je suppose que j'ai juste à aller avec ce que j'étais avant rabotage.
kennedy j'ai pensé que j'ai clairement mentionné
but you would not get .git like you would in a git clone
kennedy - si vous effectuez une sauvegarde, pourquoi le clonage, encore et encore? Il suffit de faire une
--mirror
et ont la synchronisation.OriginalL'auteur manojlds
Vous pouvez utiliser git archive à cette fin avec l' --remote option. Vous pouvez tuyau pour créer des zip ou tar ou ce que vous voulez.
http://www.kernel.org/pub/software/scm/git/docs/git-archive.html
OriginalL'auteur ralphtheninja