2010-05-24 6 views
26

J'essaie de créer un nouveau dépôt git à partir du dossier existant. J'ai créé un fichier .gitignore à la racine du dossier. Mais si je dis.gitignore ne fonctionne pas pour moi

git add * 
git commit 
git push 

les fichiers qui doivent être ignorés sont toujours validés dans le référentiel distant. Je suis sur Windows. J'ai aussi acheté une licence pour SmartGIT. Il semble également ignorer .gitignore. Je dois sélectionner manuellement les nouveaux fichiers à valider.

Qu'est-ce que je fais mal? Il est possible que votre masque de fichier exclu soit inopérant.

+3

Quelle version de Git utilisez-vous? De plus, vous mentionnez que vous utilisez Windows, donc les séparateurs de chemins sont toujours problématiques. Pourriez-vous poster un exemple de votre fichier '.gitignore' qui ne fonctionne pas comme prévu? –

+2

Pourriez-vous éditer votre question et publier le contenu de votre fichier '.gitignore'? '.gitignore' utilisera la méthode' fnname() 'spécifique au système d'exploitation sous-jacent: voir par exemple: http://stackoverflow.com/questions/2330471 et http://stackoverflow.com/questions/1470572 – VonC

+0

Je n'ai pas entendu parler de SmartGIT - J'utilise MSysGit et TortoiseGit et ils semblent bien fonctionner avec les fichiers .gitignore.Si le problème est avec SmartGIT alors j'essaierais l'alternative de MSysGit et TortoiseGit. –

Répondre

1

+0

I ' J'ai copié le fichier .gitignore d'un autre projet, où cela fonctionne. –

+0

Est-ce que .gitignore est accessible à l'utilisateur git? Peut-être que c'est un problème de permission? – takeshin

20

Vos fichiers sont-ils déjà suivis? .gitignore ne fait que silencer les commentaires sur les fichiers non suivis, mais n'empêche pas le suivi d'un fichier suivi.

+0

Non, j'ai essayé plusieurs fois avec de nouveaux dépôts. –

27

Essayez plutôt "git add .".

En outre, il fonctionne pour moi (sous Linux):

 
$ git init 
$ echo foo > .gitignore 
$ echo foo > foo 
$ echo bar > bar 
$ git add -v * 
The following paths are ignored by one of your .gitignore files: 
foo 
Use -f if you really want to add them. 
fatal: no files added 
12

J'ai eu des problèmes avec .gitignore aussi. J'ai vérifié les réponses liées énumérées au sujet de, qui a fixé la moitié du problème.

Ce qui faisait vraiment fonctionner gitignore pour moi était d'ajouter un commentaire sur la première ligne du fichier. Git n'analysait pas l'exclu situé sur la première ligne.

Vive

+2

Ajout du commentaire sur les fenêtres a travaillé pour moi aussi. +1 pour vous! –

+1

Malheureusement, j'ai compris cela pour moi-même d'abord ... puis trouvé votre commentaire. Maintenant, pour voir si c'est un bug qui devrait être réparé! – altendky

25

Votre dossier doit encore être suivi, vous pouvez voir en faisant git status qui vous montrera que votre fichier est modifié, même si elle est en .gitignore
Vous devez faire ceci:

git update-index --assume-unchanged [path_to_file] 
4

Un truc que j'ai fait face à Windows est que, en utilisant echo (selon Jakub Narębski réponse), vous devez faire attention avec des espaces.

Comme vous pouvez le voir ci-dessous tout espace avant que l'opérateur de redirection n'ait un effet sur l'ignorer réel.

C:\test>dir /B 
TOBEIGNORED 

C:\test>echo TOBEIGNORED > .gitignore 
C:\test>git status 
[...] 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  .gitignore 
#  TOBEIGNORED 
C:\test>echo TOBEIGNORED> .gitignore 
C:\test>git status 
[...] 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  .gitignore 
nothing added to commit but untracked files present (use "git add" to track) 
+1

OUI N'UTILISEZ PAS ECHO SUR WINDOWS OU VOUS DÉCHETS 3 HEURES FIGURANT POURQUOI L'ENFER LE .gitignore NE FONCTIONNE PAS –

0

J'utilise la version git 1.7.12.3 sur MacOSX et la première ligne de .gitignore est pas non plus pris en compte. Ajoutez simplement un commentaire en première ligne.

4

Vous auriez pu créer un fichier texte codé en UTF-8. Essayez de l'enregistrer en tant que codé ANSI. En git bash, vous pouvez vérifier en utilisant vi -b.

0

La ligne de commentaire en tant que première ligne du fichier est critique! J'ai passé beaucoup de temps à essayer d'exclure des fichiers pour constater que GIT ignorait la première ligne du fichier ignoré.

+0

Ce n'est définitivement pas le problème. Presque aucun de mes fichiers gitignore (~ 50) n'a un commentaire dans la première ligne, et ils fonctionnent tous parfaitement. – mhutter

Questions connexes