Question

Y at-il un moyen simple d'exporter / archive uniquement les fichiers modifiés d'une donnée commettre ou série de commits dans git? Je ne peux pas sembler trouver des instructions claires pour ce faire (et je suis nouveau à Linux / Git).

J'utilise msysgit, et pour la plupart, je suis très bien avec le déploiement des dépôts entiers, mais dans de nombreux cas, il est beaucoup plus efficace de déployer quelques petits correctifs fichiers à la fois.

pousser / tirer / installer git sur les serveurs distants ne sont pas vraiment une option que mon niveau d'accès varie entre les projets et les clients.

Y at-il un moyen de (estimation approximative) straight-forward:

pipe 'diff --names-only' to 'git-archive'? 
Était-ce utile?

La solution

Je ne pense pas qu'il soit nécessaire d'impliquer git-archives. En utilisant --name-only, vous pouvez archivez les fichiers:

tar czf new-files.tar.gz `git diff --name-only [diff options]`

Puisque vous êtes nouveau à Linux, cela pourrait nécessiter quelques explications:

Les backticks dans la ligne de commande provoquent l'enveloppe à la première exécution de la commande dans les backticks, puis de substituer la sortie de la commande dans la ligne de commande de tar. Ainsi, le git diff est exécuté en premier lieu, qui génère une liste de noms de fichiers, une sur chaque ligne. Les sauts de ligne sont réduits à des espaces et la liste complète des fichiers est placé sur la ligne de commande tar. Ensuite tar est exécuté pour créer l'archive donnée. Notez que cela peut générer des lignes de commande assez long, donc si vous avez un très grand nombre de fichiers modifiés, vous devrez peut-être une technique différente.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top