80 votes

Supprimer tous git les fichiers d'un répertoire?

J'ai un dossier sous contrôle de version. Je veux faire une copie de l'envoyer autour, mais ne voulez pas inclure tous les .git répertoires et les fichiers d'en-dessous.

Est-il un moyen de supprimer tous les fichiers git au lieu de le supprimer manuellement tous?

95voto

Chris Kooken Points 10658

L' .git dossier est uniquement stocké dans le répertoire racine de l'opération, tous les sous-répertoires comme subversion. Vous devriez être en mesure de simplement supprimer un dossier, sauf si vous utilisez Submodules...alors ils l'ont aussi.

77voto

Eric Leschinski Points 14289

Comment faire pour supprimer tous .git sous-répertoires d'un dossier sous Linux.

Cette commande liste tous .git de répertoires sous le répertoire courant:

find . -name ".git"

Impressions:

./.git
./foobar/.git
./footbar2/.git

Il ne devrait être comme 3 ou 4 .git annuaires parce que git n'a qu'un seul .git dossier pour chaque projet. Que vous pouvez faire à la main.

Si vous avez envie de les enlever en une seule commande et de vivre dangereusement:

//Retrieve all the files named ".git" and pump them into 'rm -rf'
//WARNING if you don't understand why/how this command works, DO NOT run it!

find . -name ".git" | xargs rm -rf

//WARNING, if you accidentally pipe a `.` or `/` to xargs rm -rf, 
//then everything will be gone.  Which requires an OS reinstall.

16voto

jweyrich Points 10002

Vous pouvez utiliser git archive, par exemple:

git archive master | bzip2 > project.tar.bz2

master est la branche désirée.

8voto

IntrepidBrit Points 526

Dans le cas où quelqu'un tombe sur ce sujet - là est un peu plus "one size fits all" solution.

Si vous êtes en utilisant .git ou .svn, vous pouvez utiliser le bouton "--exclude-vcs" option pour le goudron. Cela permettra d'ignorer beaucoup de différents fichiers/dossiers requis par les différents systèmes de contrôle de version.

Si vous voulez en lire plus, découvrez: http://www.gnu.org/software/tar/manual/html_section/exclude.html

1voto

Adrian Petrescu Points 4618

Contrairement à d'autres systèmes de contrôle des sources comme SVN ou CVS, git stocke toutes ses métadonnées dans un seul répertoire, plutôt que dans chaque sous-répertoire du projet. Donc, il suffit de supprimer .git à partir de la racine (ou utiliser un script comme git-export) et vous devriez être bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X