web-dev-qa-db-fra.com

gitignore n'ignore pas le fichier

Peu importe ce que je mets .gitignore Je ne peux pas pas obtenir git pour ignorer le UserInterfaceState.xcuserstate fichier ci-dessous:

$ git status
On branch master
Your branch is up-to-date with 'Origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   .gitignore
    modified:  CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate

J'utilise/modifie le .gitignore fichier répertorié sur ce message . J'ai tout essayé pour correspondre au modèle, y compris le nom de chemin exact: CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate en vain.

Ce problème particulier provient du flux de travail où Xcode est utilisé pour créer le dépôt git initial et le .gitignore le fichier de ici est ajouté par la suite. Une réponse plus générale à l'ignorance des fichiers précédemment suivis dans git peut être trouvée dans cette question (je suppose que je n'ai jamais trouvé ce post dans ma recherche car il n'avait pas "gitignore" dans le titre).

37
wcochran

Vous ne pouvez ignorer que les fichiers non versionnés mais ce fichier est déjà connu pour git.

Si vous voulez que git suive ce fichier, il n'est pas nécessaire de dire à git de l'ignorer.

Si vous ne voulez pas que git suive ce fichier, utilisez git rm et votre règle d'ignorance commencera à fonctionner.

Mise en garde: git rm supprimera le fichier. Utilisez git rm --cached à supprimer du référentiel mais pas du disque.

66
michas

J'ai eu le même problème.

Commencez par valider toutes les modifications de code en suspens, puis exécutez cette commande:

git rm -r --cached .

Cela supprime tous les fichiers modifiés de l'index (zone de transfert), puis exécutez simplement:

git add .

Engagez-le:

git commit -m ".gitignore working now"

Pour annuler git rm --cached filename, utilisez git add filename.

18
Gaurav Sharma

L'un des moyens simples d'ignorer les fichiers sur GitHub est parfaitement expliqué ici https://help.github.com/en/articles/ignoring-files

Avant de faire un Push vers GitHub, votre dossier de projet doit être vide.

1) ouvrez le terminal et écrivez cd

et faites glisser votre dossier de projet sur le terminal. Après cela, cela ressemblera à ceci:

docmacbook$ cd /Users/docmacbook/Downloads/MyProjectFolder

2) Ouvrez le fichier .gitignore et ajoutez les fichiers que vous souhaitez ignorer. Par exemple, mon fichier .gitignore ressemble à ceci:

MyAppName.xcodeproj/xcuserdata
MyAppName.xcworkspace/xcuserdata
Pods
report.xml

3) Validez et Poussez vers GitHub.

Après cela, déplacez votre projet ou créez-en un dans le dossier où se trouve le fichier .gitignore et maintenant les fichiers que vous souhaitez ignorer ne seront pas poussés vers votre GitHub.

Remarque: Ces étapes fonctionneront également pour un projet existant, je ne l'ai pas testé.

0
Doca