2012-04-12 5 views
7

J'ai un repo git que je veux tirer. Je fais un git pull normal sans problèmes. Le problème est que je veux juste un certain répertoire sur le repo. Ma pensée était que je pouvais utiliser un fichier .gitignore avec une règle comme ceci:Tirer un seul répertoire d'un repo git

#Ignore all files 
/
#Except the one I want 
!/temp 

Le problème est que cela ne fonctionne pas. Est-ce la bonne façon de le faire ou existe-t-il un meilleur moyen?

+0

btw, pour ignorer tous les fichiers, j'irais avec '/ *' – c00kiemon5ter

+1

Juste pour l'enregistrement: vous ne pouvez pas tirer un seul répertoire. Vous tirez toujours sur ** l'historique **, pas sur les fichiers ou les répertoires. Bien sûr, vous êtes libre de _work_ seulement sur certains fichiers. – fork0

Répondre

25

git pull récupère et fusionne la branche distante.

.gitignore ne fonctionne que localement et se cacheront les entrées correspondant d'apparaître sur git status et étant ajoutés à l'index avec git add. Ce n'est pas ce que tu veux. Ce que vous voulez faire, c'est fetch la branche distante, et à partir de là, extraire le répertoire/fichier dont vous avez besoin.

$ git fetch <remote> <branch> 
$ git checkout <remote>/<branch> -- relative/path/to/file/or/dir 

le fichier/dir devrait maintenant être dans votre branche et ajouté à l'index.

+0

C'était exactement ce dont j'avais besoin. Merci beaucoup! – Dan

+0

Est-ce que cela veut dire "supprimer" ou "à distance" sur la deuxième ligne? –

+0

@ ing0 merci, c'était une faute de frappe;) – c00kiemon5ter

Questions connexes