2010-08-18 10 views
10

Est-il possible de dire à Git d'ignorer les liens symboliques? Je travaille avec un environnement mixte Linux/Windows et, comme vous le savez, les liens symboliques sont traités très différemment entre les deux.Ignorer les liens symboliques dans .gitignore

+3

Que voulez-vous dire par ignorer? Vous pouvez simplement ajouter les liens symboliques à votre .gitignore si c'est ce que vous voulez. –

+0

Oui, mais si seulement ajouter les noms de fichiers, il serait également ignorer les fichiers qui sont symétriques ... même si je suppose que je pourrais spécifier les chemins complets. J'espérais quelque chose que je pourrais coller dans un fichier de configuration ... – Andrei

+3

Votre meilleur pari pourrait être de générer la liste avec un 'find * -type l', je suppose. – Cascabel

Répondre

1

Utilisez la version git> = 1,6

Git utilisé pour traiter sym-liens les mêmes que les fichiers réguliers, mais les nouvelles versions git (> = 1.6) vérifier si un fichier est au-delà d'un lien symbolique et jeter une erreur fatale.

.: par exemple

# git init 
# mkdir newdir 
# touch newdir/foo 
# git add newdir/foo 
# git commit -m 'add foo' 
# mv newdir /tmp/ 
# ln -s /tmp/newdir 
# touch newdir/bar 
# git add newdir/bar 
fatal: 'newdir/bar' is beyond a symbolic link 

# git add/tmp/newdir 
fatal: '/tmp/newdir' is outside repository 

# git --version 
git version 1.7.3.4 
+2

git 1.7.9.5 ajoute des liens symboliques très bien, même quand ils pointent vers quelque chose en dehors du dépôt ... – Izkata

1

Non, il est impossible de le faire à l'échelle mondiale. Cependant, si vous avez beaucoup de liens symboliques, voici un script bash que vous pouvez utiliser pour les ajouter facilement au fichier .gitignore de votre repo:

for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do 
    test -L "$f" && echo $f >> .gitignore; # add symlinks 
    test -d "$f" && echo $f\* >> .gitignore; # add new directories as well 
done 
+0

Une solution géniale! Fonctionne très bien :) Merci beaucoup! –

Questions connexes