web-dev-qa-db-fra.com

Git ajoute tous les sous-répertoires

Je ne parviens pas à ajouter un dossier et tous ses sous-répertoires à mon référentiel git. J'ai réalisé que c’était une question très populaire après avoir fait quelques recherches sur Google et j’ai essayé chaque suggestion sans succès, en particulier la suggestion de la page de manuel de git-add . J'ai même essayé git add -A sans succès. Par souci de simplicité, disons que j'ai initialisé mon référentiel git sous la forme Dir1. Ensuite, j'ai la structure de répertoires de fichiers suivante.

Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt

Mes vrais fichiers ont des sous-répertoires qui couvrent de 5 à 6 niveaux, existe-t-il une commande git pour ajouter tous les fichiers de chaque sous-répertoire à mon référentiel? À l'heure actuelle, lorsque je fais la suggestion de la page de manuel git add Dir1/\*, je peux voir Dir2 dans mon référentiel, mais il apparaît sous la forme d'un dossier vert et je ne peux pas l'ouvrir, ce qui me laisse penser que tous les fichiers/dossiers dans Dir2 n'a pas été ajouté. Toute aide serait grandement appréciée. Je suis un nouvel utilisateur de git (moins d'une semaine d'utilisation), essayez donc de garder vos instructions au niveau débutant.

64
Josh Bradley

Faire,

git add .

alors que dans la racine du référentiel. Il va tout ajouter. Si vous faites git add *, seuls les fichiers sur lesquels * pointe sont ajoutés. Le point unique fait référence au répertoire.

Si votre répertoire ou votre fichier n'a pas été ajouté à git index/repo après la commande ci-dessus, n'oubliez pas de vérifier s'il est marqué comme ignoré par git dans .gitignore file. 

87
Kalle Pokki

Vous pouvez également faire face à des problèmes si un sous-répertoire est un référentiel git - c’est-à-dire un répertoire .git - à vérifier avec ls -a.

Pour le supprimer, accédez au sous-répertoire et à rm .git -rf.

8
PaulB

Solution simple:

git rm --cached directory
git add directory
6
ngCourse

A également lutté, mais a bien tapé

git add -f ./JS/*

où JS était mon nom de dossier contenant des sous-dossiers et des fichiers 

5
Ian Wright

Je ne peux pas dire avec certitude si c'est le cas, mais ce qui semblait être un problème pour moi était d'avoir des fichiers .gitignore dans certains sous-répertoires. Encore une fois, je ne peux pas garantir cela, mais tout a fonctionné après leur suppression.

1
Adam Ruhl

Probablement le fichier .gitignore s est en cours de lecture. Notez que les fichiers .gitignore peuvent apparaître non seulement au niveau racine du référentiel, mais également à n’importe quel sous-niveau. Vous pouvez essayer ceci à partir du niveau racine pour les trouver:

trouver . -nom ".gitignore"

puis examinez les résultats pour voir ce qui pourrait empêcher l’ajout de vos sous-répertoires.

Il pourrait également y avoir des sous-modules impliqués. Vérifiez les répertoires incriminés pour les fichiers ".gitmodules".

0
samato

J'ai déjà vu ce problème auparavant, lorsque le (sous) dossier que j'essayais d'ajouter commençait par son nom "_Quelque chose_"

J'ai enlevé les soulignés et cela a fonctionné. Vérifiez si votre dossier contient des caractères susceptibles de poser problème.

0
Ash Kumar