2009-12-12 8 views
3

Je n'arrive pas à trouver la réponse à cette question apparemment simple, n'importe où: Comment acquérir une copie propre d'un dépôt de code une fois que vous "libérez"? Par exemple, disons que je suis à un endroit dans mon dépôt Git où je veux publier une copie. Comment est-ce que je le copie sans tous les Gitiness? Je ne veux pas de répertoires Git cachés, etc. Je veux un produit livrable propre. Des idées? Je travaille avec RoR, btw.Comment acquérir un référentiel Git "nettoyé"?

Meilleur

+0

duper possible: http://stackoverflow.com/questions/160608/how-to-do-a- git-export-like-svn-export –

Répondre

10

Vous voudrez peut-être git archive, par exemple

git archive --format=tar -o /path/to/archive.tar master 

Notez que ce qui précède vous donne un arbre entier. Si vous voulez, peut réduire jusqu'à ce que des répertoires spécifiques, y compris en descendant plusieurs « niveaux »:

git archive --format=tar -o /path/to/archive.tar master somedir/ another/dir/ 
4

Dans votre répertoire git, il n'y a vraiment qu'un seul répertoire qui est « gitty », et qui est .git.

Voici ce que je propose, vous vérifiez votre branche de publication et le copiez ailleurs, à l'exception du dossier .git. Ce emballe votre répertoire de travail dans un tarball:

$tar --exclude .git -cjf release.tar.bz2 * 
+1

Qu'en est-il des fichiers '.gitignore'? Ne sont pas ceux aussi "gitty"? Cela inclurait ceux dans l'archive. Je ne suis pas sûr que 'git archive' les exclura par défaut, mais cela pourrait l'être. Si ce n'est pas le cas, il pourrait être configuré pour le faire avec l'attribut 'export-ignore'. –

Questions connexes