2017-02-20 1 views
0

Je viens de créer un dossier comme celui-ci:git ignorer tout sauf les fichiers dans certains sous-répertoires

. 
├── config 
│   ├── subfolder 
│   │   └── config.xml 
│   └── subfolder2 
│    └── config.xml 
├── .gitignore 
├── log2.txt 
└── log.txt 

Et je l'ai tapé git init dans ce dossier. Je veux ignorer tout sauf .gitignore, et tous les fichiers config.xml.

Ce sont les .gitignore j'ai essayé:

1:

* 
!.gitignore 
!**/config.xml 

2:

* 
!.gitignore 
!config/*/config.xml 

3:

* 
!.gitignore 
!**/config.xml 

git status montre .gitignore est le seul fichier non suivi avec l'un des paramètres gitignore ci-dessus.

Je souhaite également que tous les fichiers config.xml figurent également dans la liste des fichiers non-suivis. J'ai lu le tutoriel au atlassian. Et je pense que c'est peut-être la règle suivante qui ne me permet pas d'ignorer tout sauf certains fichiers dans des sous-répertoires. J'utilise git version 2.11.0.windows.1 dans le système d'exploitation Windows 10 Quelqu'un sait pourquoi mon fichier .gitignore ne fonctionne pas comme prévu?

enter image description here

+0

Pouvez-vous créer un repo github sans gitignore il est donc plus facile de simuler ce que vous voulez? –

+0

https://github.com/lyenliang/TestGitignore – Brian

+0

Salut, je viens de pousser le dossier à github afin qu'il soit plus facile pour tout le monde de simuler. – Brian

Répondre

0

Merci à link de torek, je viens enfin avec la solution suivante:

/** 
!/**/ 
!.gitignore 
!**/config.xml 
+1

Vous n'avez pas besoin de tous ces doubles astérisques. Ce qui suit devrait avoir le même résultat, au moins cela fonctionne pour moi avec votre exemple de repo (bien que je sois sur MacOS et pas Windows).Les espaces vides représentent les sauts de ligne car je ne peux pas insérer de saut de ligne dans les commentaires: '/ *!/* /! .gitignore! Config.xml' – gucce

+0

@gucce vous avez raison. '/ *!/* /! .gitignore! config.xml' fonctionne sur mon ordinateur. – Brian

0

clonées votre pension.

Avec cette .gitignore:

* 
!.gitignore 
!*/*/config.xml 

Il est ignorant tout sauf les fichiers de configuration et .gitignore:

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: config/subfolder/config.xml 

no changes added to commit (use "git add" and/or "git commit -a") 
. 
├── config 
│   ├── subfolder 
│   │   ├── config.xml 
│   │   └── ignoringthis 
│   └── subfolder2 
│    └── config.xml 
├── log3.txt 
└── newdir 

Est-ce ce que vous voulez?

+0

Ce '.gitignore' ne fonctionne pas sur mon ordinateur. Utilisez-vous également le système d'exploitation Windows? – Brian

+0

Je ne vois pas de ligne 'modified: config/subfolder/config.xml' sur mon ordinateur – Brian

+0

Ahh windows, pouvez-vous essayer avec! * \\ * \\ config.xml? – lapinkoira