web-dev-qa-db-fra.com

Gitignore ne fonctionne pas

Mon fichier .gitignore ne fonctionne pas pour une raison quelconque, et aucune quantité de Google n'a été capable de le réparer. Voici ce que j'ai

*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log

C'est dans le répertoire master, qui est mon dépôt Git. J'utilise Git 1.8.4.2 parce que je suis sur un MacBook sous OSX 10.8.6.

176
user3280133

Les fichiers/dossiers de votre contrôle de version ne se supprimeront pas simplement parce que vous les aurez ajoutés à .gitignore. Ils sont déjà dans le référentiel et vous devez les supprimer. Vous pouvez simplement faire cela avec ceci:

(N'oubliez pas de valider tout ce que vous avez changé avant de le faire.)

git rm -rf --cached .
git add .

Cela supprime tous les fichiers du référentiel et les rajoute (en respectant cette fois les règles de votre .gitignore).

455
Ahmad

Pour extraire un seul fichier qui a déjà été ajouté/initialisé dans votre référentiel, c’est-à-dire que vous devez cesser de suivre le fichier mais pas le supprimer de votre système, utilisez: git rm --cached filename

Pour extraire chaque fichier présent dans votre .gitignore:

Commencez par valider toutes les modifications de code en attente, puis exécutez la commande suivante:

git rm -r --cached .

Cela supprime tous les fichiers modifiés de l'index (zone intermédiaire), puis lancez simplement:

git add .

Engagez-le:

git commit -m ".gitignore is now working"
91
Nicolas

Après avoir suivi un peu un lapin en essayant de suivre les réponses à cette question (peut-être parce que je devais le faire dans un projet de studio visuel), j'ai trouvé que le chemin le plus facile était de

  1. Couper et coller le (s) fichier (s) que je ne veux plus suivre dans un emplacement temporaire

  2. Commettre la "suppression" de ces fichiers

  3. Valider une modification de _.gitignore_ pour exclure les fichiers que j'avais temporairement déplacés

  4. Replacez les fichiers dans le dossier.

J'ai trouvé que c'était le moyen le plus simple de procéder (au moins dans un studio visuel, ou je supposerais un autre environnement IDE basé sur le soulèvement tel que Android Studio), sans accidentellement me tirer dans le pied avec une jolie omniprésente _git rm -rf --cached ._, après quoi le projet de studio visuel sur lequel je travaillais n'a pas été chargé.

5
Garrett Simpson

Dans mon cas, c’était n espace vide au début du fichier, qui est clairement apparu lorsque j’ai ouvert le fichier dans Notepad, n’était pas évident dans Visual Studio Code.

5
S Saad

Dans mon cas, les espaces à la fin des lignes de .gitignore en étaient la cause. Alors méfiez-vous des espaces dans le .gitignore!

3
026

J'ai résolu mon problème en procédant comme suit:

Tout d’abord, je suis un utilisateur Windows, mais j’ai rencontré le même problème. Donc, je poste ma solution ici.

Il y a une raison simple pour laquelle parfois .gitignore ne fonctionne pas comme il est supposé. Cela est dû au comportement de conversion EOL.

Voici une solution rapide pour cela

Édition> Conversion EOL> Format Windows> Enregistrer

Vous pouvez blâmer les paramètres de votre éditeur de texte pour cela.

Par exemple:

En tant que développeur Windows, j'utilise généralement Notepad ++ pour éditer mon texte contrairement aux utilisateurs de Vim.

Donc, ce qui se passe est que, lorsque j'ouvre mon fichier .gitignore à l'aide de Notepad ++, cela ressemble à ceci:

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


# See https://help.github.com/ignore-files/ for more about ignoring files.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
*.dll
*.force
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

Si j'ouvre le même fichier en utilisant le Notepad par défaut, voici ce que je reçois

## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from  https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # See https://help.github.com/ignore-files/ for more about ignoring files. # User-specific files *.suo *.user *.userosscache 

Donc, vous avez peut-être déjà deviné en regardant la sortie. Tout dans le .gitignore est devenu un one-liner, et comme il y a un ## au début, tout se passe comme si tout était commenté.

La solution est simple: ouvrez simplement votre fichier .gitignore avec Notepad ++, puis procédez comme suit:

Édition> Conversion EOL> Format Windows> Enregistrer

La prochaine fois que vous ouvrirez le même fichier avec le bloc-notes par défaut de Windows, tout devra être correctement formaté. Essayez-le et voyez si cela fonctionne pour vous.

1
Ozesh

Est-ce que git reset --hard fonctionne pour quelqu'un? Je ne dis pas que c'est une bonne solution, cela semblait juste fonctionner la première fois que j'ai essayé.

0
user1889992