Comment ignorer tous les fichiers d'un dossier avec un référentiel Git dans Sourcetree?

86

J'ai un référentiel Bitbucket Git géré avec Sourcetree.

J'ai deux dossiers que je souhaite valider, mais je dois ignorer tous les fichiers de ces dossiers, car ils ne contiennent que des fichiers temporaires.

Comment puis je faire ça?

rubdottocom
la source

Réponses:

54

Ajoutez ceci à .gitignore:

*
!.gitignore
Gergo Erdosi
la source
13
Cela devrait être ajouté dans chaque dossier que vous souhaitez suivre. L'existence de ce fichier lui-même permettra à git de suivre le dossier (en suivant ce fichier). Les *moyens ignorent tous les fichiers, et les !.gitignoremoyens n'ignorent pas le fichier lui
Billy Moon
2
Comme Billy Moon l'a expliqué, merci. Vous pouvez donc créer des fichiers .gitignore dans des répertoires. Ce fichier indique à Git ce qu'il faut ignorer ou non.
Gergo Erdosi
21
Comment faites-vous cela dans SourceTree?
1,21 gigawatts
1
Vous n'avez pas besoin de SourceTree pour cela, .gitginorec'est un fichier normal, créez-le simplement dans le répertoire dont vous voulez ignorer le contenu.
Gergo Erdosi
1
Comme mentionné par @ AD7six ci-dessous, n'ajoutez pas ! .Gitignore au fichier car il n'est pas nécessaire.
Xcalibur
155

Pour les utilisateurs de Sourcetree: Si vous voulez ignorer un dossier spécifique, sélectionnez simplement un fichier dans ce dossier, faites un clic droit dessus et faites "Ignorer ...". Vous aurez un menu contextuel dans lequel vous pouvez ignorer «Ignorer tout ce qui se trouve sous: <VOTRE DOSSIER NON SOUHAITÉ>»

Premier menu

Deuxième menu

Si l'option "Ignorer" est grisée, vous devez sélectionner l'option "Arrêter le suivi". Après cela, le fichier sera ajouté aux fichiers intermédiaires avec un signe moins sur l'icône d'arrière-plan rouge et l'icône du fichier dans les fichiers non créés. liste des se changera en un signe de question sur un fond violet. Désormais, dans la liste des fichiers non créés , l'option «Ignorer» est à nouveau activée. Faites comme décrit ci-dessus.

Kalzem
la source
14
Si le dossier est déjà validé, supprimez-le d'abord, validez les modifications, puis suivez les étapes ci-dessus.
RMorrisey
16
J'ai grisé l'option "Ignorer". Est-ce que quelqu'un sait pourquoi?
Andrei Karcheuski
6
Ignorer est également grisé pour moi.
Micah Zoltu
ignore-t-il ajouter à git ignore? sinon pourquoi pas?
Joe Lloyd
1
@JoeLloyd oui cela ajoute à git ignore. Vous pouvez même valider le fichier git ignore créé / modifié comme n'importe quel autre fichier.
Kalzem
25

Faites un clic droit sur un fichier → IgnorerIgnorer tout ce qui se trouve en dessous .

Si l' option Ignorer est grisée, alors:

  1. Préparez d'abord un fichier
  2. Clic droit → Arrêter le suivi
  3. Ce fichier apparaîtra dans le volet ci-dessous avec un point d'interrogation → Faites un clic droit dessus → Ignorer

Entrez la description de l'image ici

Andrei Karcheuski
la source
7

Autant que je sache, Git ne suit pas les dossiers, seuls les fichiers - donc les dossiers vides (ou les dossiers où tous les fichiers sont ignorés) ne peuvent pas être validés. Si, par exemple, vous avez besoin que le dossier soit présent en raison d'une étape de votre processus de construction, vous pouvez peut-être demander à votre outil de construction de le créer à la place? Ou vous pouvez mettre un fichier vide et non ignoré dans le dossier et le valider.

Aasmund Eldhuset
la source
1
Vous voulez dire que si je veux suivre le dossier, je dois ajouter un fichier "factice" et ignorer le reste? : - /
rubdottocom
2
@rubdottocom: Je pense que oui; Les dossiers n'existent dans git qu'à cause des fichiers qu'ils contiennent. Pourquoi avez-vous besoin de contrôler une version de dossier vide?
Aasmund Eldhuset
2
Il existe de nombreuses raisons de suivre les dossiers vides. Vous pouvez souhaiter qu'une extraction ait le dossier prêt à être utilisé par les utilisateurs, sans avoir à les créer individuellement. Votre code peut dépendre de l'existence d'un certain dossier, par exemple un dossier qui attend des téléchargements, et si le dossier n'existe pas, il ne parvient pas à y télécharger les fichiers etc ...
Billy Moon
Pour la raison expliquée par @AasmundEldhuset, la réponse donnée par Gergo a la bonne solution.
Billy Moon
@BillyMoon: Je suis d'accord qu'il peut y avoir des raisons; Je me demandais quels étaient ses besoins particuliers, afin que nous puissions proposer la solution la plus appropriée. :-) L'astuce de Gergo était bien, même si cela revient à ajouter un fichier factice (plus ou moins) au dossier, comme je l'ai suggéré. Sa solution était plus git-ish, cependant, donc +1 pour lui.
Aasmund Eldhuset
5

Après m'être cogné la tête à ce sujet pendant au moins une heure, je propose cette réponse pour essayer de développer les commentaires que d'autres ont faits. Pour ignorer un dossier / répertoire, procédez comme suit: si vous n'avez pas de fichier .gitignore à la racine de votre projet (ce nom exactement ".gitignore"), créez un fichier texte factice dans le dossier que vous souhaitez exclure. À l'intérieur de l'arborescence des sources, cliquez dessus avec le bouton droit de la souris et sélectionnez Ignorer. Vous obtiendrez une fenêtre contextuelle qui ressemble à ceci.

entrez la description de l'image ici

Sélectionnez "Tout en dessous" et sélectionnez le dossier que vous souhaitez ignorer dans la liste déroulante. Cela créera un fichier .gitignore dans votre répertoire racine et y mettra la spécification du dossier.

Si vous avez déjà un dossier .gitignore dans votre dossier racine, vous pouvez suivre la même approche ci-dessus, ou vous pouvez simplement modifier le fichier .gitignore et ajouter le dossier que vous souhaitez exclure. C'est juste un fichier texte. Notez qu'il utilise des barres obliques dans les noms de chemin plutôt que des barres obliques inverses, comme nous, les utilisateurs de Windows, sommes habitués. J'ai essayé de créer un fichier texte .gitignore à la main dans l'Explorateur Windows, mais cela ne m'a pas permis de créer un fichier sans nom (c'est-à-dire avec seulement l'extension).

Notez que l'ajout du .gitignore et de la spécification de fichier n'aura aucun effet sur les fichiers qui sont déjà suivis. Si vous les suivez déjà, vous devrez arrêter de les suivre. (Cliquez avec le bouton droit sur le dossier ou le fichier et sélectionnez Arrêter le suivi.) Vous les verrez alors passer d'une icône verte / propre ou orange / modifiée à une icône rouge / supprimée. Lors de votre prochain commit, les fichiers seront supprimés du référentiel et apparaîtront ensuite avec une icône bleue / ignorée. Un autre contributeur a demandé pourquoi Ignorer était désactivé pour des fichiers particuliers et je pense que c'était parce qu'il essayait d'ignorer un fichier qui était déjà suivi. Vous ne pouvez ignorer qu'un fichier comportant une icône de point d'interrogation bleue.

Karl Hoaglund
la source
Pour créer un fichier .gitignore dans Widnows, utilisez la commande Git bash 'touch .gitignore'
Mikee
4

Comme mentionné par d'autres: git ne suit pas les dossiers, uniquement les fichiers.

Vous pouvez vous assurer qu'un dossier existe avec ces commandes (ou une logique équivalente):

echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"

L'existence du fichier signifiera que quiconque extrait le référentiel aura le dossier.

Le contenu du fichier gitignore signifiera que tout ce qu'il contient est ignoré

Vous n'avez pas besoin de ne pas ignorer le fichier .gitignore lui-même . C'est une règle qui ne servirait à rien une fois engagée.

OU

si vous préférez conserver toutes vos définitions d'ignorer au même endroit, vous pouvez créer .gitignore à la racine de votre projet avec un contenu comme celui-ci:

*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder

et pour s'assurer que les dossiers existent

touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"

«n'importe quoi» peut littéralement être n'importe quoi. Les noms couramment utilisés sont .gitignore, .gitkeep, vide.

AD7six
la source
3

Si votre Ignore option est grisée, vous devez arrêter le suivi du fichier avant de pouvoir l'ignorer. Vous pouvez simplement faire un clic droit sur le fichier et cliquer sur "Arrêter le suivi".

Une icône bleue devrait apparaître à côté. Cliquez à nouveau dessus avec le bouton droit et cliquez sur ignorer.

LeRoy
la source
2

Ignorez le dossier complet de l'arborescence source.

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

Pour le dossier bin et le dossier obj, écrivez simplement: * / bin / * / obj /

Rajesh Kumar
la source
0
  • Ignorez tous les fichiers du dossier avec Git dans Sourcetree:

Ignorer tous les fichiers du dossier avec Git dans Sourcetree

Yatko
la source
-2

Dans Sourcetree: ignorez simplement un fichier dans le dossier spécifié. Sourcetree vous demandera si vous souhaitez ignorer tous les fichiers de ce dossier. C'est parfait!

AVEbrahimi
la source
14
-1 Une réponse inutile. Puisque vous n'expliquez pas comment faire l'ignorer (dans sourcetree)!
Ingénieur