Question

Comment puis-je ignorer les répertoires ou les dossiers dans Git à l'aide de msysgit sous Windows?

Était-ce utile?

La solution

Créez un fichier nommé .gitignore dans le répertoire de votre projet. Ignorer les répertoires en entrant le nom du répertoire dans le fichier (avec une barre oblique ajoutée):

dir_to_ignore/

Plus d'infos ici .

Autres conseils

Par défaut, l'explorateur Windows affiche .gitignore alors qu'en réalité le nom du fichier est .gitignore.txt

Git n'utilisera pas .gitignore.txt

Et vous ne pouvez pas renommer le fichier en .gitignore car l'explorateur considère qu'il s'agit d'un fichier de type gitignore sans nom.

Solution non en ligne de commande:

You can rename a file to ".gitignore." and it will create ".gitignore"

Il semble que pour ignorer les fichiers et les répertoires, il existe deux manières principales:

  1. .gitignore

    • Placement du fichier .gitignore dans la racine du référentiel à côté du dossier .git (sous Windows, assurez-vous de voir la vraie extension de fichier , puis faire .gitignore. (avec le point à la fin pour créer une extension de fichier vide))
    • Création de la configuration globale ~ / .gitignore_global et exécution de git config --global core.excludesfile ~ / .gitignore_global pour ajouter cela à votre configuration git

    remarque: les fichiers suivis auparavant peuvent être décompressés en exécutant git rm --cached filename

  2. Exclusion de reprise : pour les fichiers locaux qu'il n'est pas nécessaire de partager, vous ajoutez simplement le modèle de fichier ou le répertoire au fichier .git / info / exclude Ces règles ne sont pas validées. Par conséquent, ne sont pas vues par les autres utilisateurs , pour plus d'informations. ici

[mise à jour] Pour créer des exceptions dans la liste des fichiers ignorés, consultez cette question .

J'ai eu quelques problèmes lors de la création d’un fichier dans Windows Explorer avec un fichier. au début.

Une solution de contournement consistait à accéder à la commande et à créer un nouveau fichier à l'aide de "modifier"

.

pour indiquer à GIT d’ignorer certains fichiers ou dossiers, vous devez créer le fichier .gitignore .

mais dans l'explorateur Windows, vous devez donner un nom au fichier, vous ne pouvez pas créer de fichier avec une simple extension, l'astuce consiste à créer un fichier texte vide, à accéder à l'invite de commande et à changer le nom du fichier en .gitignore

ren "New Text Document.txt" .gitignore

maintenant ouvrez le fichier avec votre éditeur de texte favori et ajoutez les noms de fichiers / dossiers que vous souhaitez ignorer. vous pouvez également utiliser des caractères génériques comme celui-ci *. txt

espérons que cela répond à votre question

Si vous souhaitez conserver un dossier et non les fichiers qu'il contient, insérez simplement un " .gitignore " fichier dans le dossier avec " * " en tant que contenu. Ce fichier ignorera tout le contenu du référentiel. Mais .gitignore sera inclus dans votre référentiel.

$ git add path/to/folder/.gitignore

Si vous ajoutez un dossier vide, vous recevez ce message (.gitignore est un fichier caché)

The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added

Donc, utilisez "-f". forcer ajouter:

$ git add path/to/folder/.gitignore -f

Sous Windows, les barres obliques constituent un obstacle supplémentaire. Exclure un seul répertoire dans .gitignore avec

  

dir_to_exclude /

fonctionnera éventuellement, mais en excluant tous les répertoires avec

  

/

provoque des problèmes lorsque vous avez des noms de fichiers avec des espaces (comme mon fichier.txt ) dans votre répertoire: Git bash échappe à ces espaces avec une barre oblique inverse (comme mon \ fichier.txt ) et Git pour Windows ne fait pas la distinction entre / et \ .

Pour exclure tous les répertoires, mieux utiliser:

  

** /

Deux astérisques consécutifs signifient le contenu du répertoire.

Également dans votre répertoire de projets \. git \ info , vous trouverez un fichier d'exclusion qui correspond à la même chose que .gitignore (je pense). Vous pouvez ajouter des fichiers et des répertoires à ignorer.

Pour ignorer un répertoire entier dans git, le moyen le plus simple consiste à inclure un fichier .gitignore dans le répertoire cible qui contient simplement "* *"

.

Un exemple illustratif,

Exemple de système

/root/
    .gitignore
    /dirA/
        someFile1.txt
        someFile2.txt
    /dirB/
        .gitignore
        someFile3.txt
        someFile4.txt

Objectif

  • ignore le contenu de / dirB /

Top Level .gitignore (/root/.gitignore)

  • C’est là que se trouvent vos informations standard Gitignore

Répertoire ignoré .gitignore (/root/dirB.gitignore)

  • Ce fichier se lit simplement comme '*' et le répertoire est complètement ignoré, ainsi que tous les fichiers!

et c'est aussi simple que cela:)

Au cas où vous auriez besoin d'exclure des sous-dossiers, vous pouvez utiliser le caractère générique ** pour exclure tout niveau de sous-répertoire.

**/build/output/Debug/

J'ai eu quelques problèmes à faire en sorte que git récupère le fichier .gitignore sous Windows. Cependant, le fichier $ GIT_DIR / info / exclude semble toujours fonctionner. L'inconvénient de cette approche, toutefois, est que les fichiers du répertoire $ GIT_DIR ne sont pas inclus dans l'enregistrement, et donc non partagés.

(p.s. $ GIT_DIR est généralement le dossier caché nommé .git)

Vous pouvez créer le " .gitignore " fichier avec le contenu:

*
!.gitignore

Cela fonctionne pour moi et pour les simples.

Lorsque tout le reste échoue , essayez de modifier le fichier

.
  

/. git / info / exclude

et en ajoutant les répertoires que vous voulez à la fin du fichier, comme ceci:

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/

J'ai ajouté les dossiers "Actifs". et " compilé " à la liste des fichiers et des répertoires à ignorer.

Je suppose que le problème est que votre arbre de travail ressemble à ceci:

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

... avec le .gitignore que vous décrivez. Cela vous donnera le statut de git comme:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
#   a-cache/
#   b-cache/

... si les fichiers index.html n'ont pas encore été ajoutés au référentiel. (git voit qu'il y a des fichiers non marqués dans les répertoires de cache, mais ne signale que les répertoires.) Pour résoudre ce problème, assurez-vous d'avoir ajouté et validé les fichiers index.html :

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

... et votre statut de git ressemblera alors à:

$ git status
# On branch master
# 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)

(Évidemment, vous voulez aussi valider .gitignore , j'étais juste paresseux avec ce scénario de test.)

Sous Unix:

touch .gitignore

Sous Windows:

echo > .gitignore

Ces commandes exécutées dans un terminal créeront un fichier .gitignore à l'emplacement actuel.

Ajoutez simplement des informations à ce fichier .gitignore (en utilisant Notepad ++ par exemple), quels fichiers ou dossiers doivent être ignorés. Enregistrez vos modifications. C'est ça:)

Plus d'informations: https://www.atlassian.com/git/ tutoriels / save-changes / gitignore

Sous Windows et Mac, si vous souhaitez ignorer un dossier nommé Flower_Data_Folder dans le répertoire actuel, vous pouvez procéder comme suit:

  

echo Flower_Data_Folder > > .gitignore

S'il s'agit d'un fichier nommé data.txt

  

echo data.txt > > .gitignore

si c'est un chemin comme "Data / passwords.txt"

  

echo " Data / passwords.txt " > > .gitignore.

J'ai eu des problèmes similaires, je travaille sur une chaîne d’outils Windows avec un référentiel partagé avec les gars de Linux, ils créent heureusement des fichiers avec les mêmes noms (sauf les cas) dans un dossier donné.

L’effet est que je peux cloner le référentiel et avoir immédiatement des dizaines de fichiers «modifiés» qui, si j’étais en enregistrement, créeraient des dégâts.

J'ai Windows configuré pour sensible à la casse et git pour ne pas ignorer la casse mais cela échoue quand même (dans les appels de l'API Win32 apparemment).

Si je gitignore les fichiers, je dois me rappeler de ne pas suivre le fichier .gitignore.

Mais j'ai trouvé une bonne réponse ici http: // archive .robwilkerson.org / 2010/03/02 / git-tip-ignorer-les-modifications-aux-fichiers-suivis / index.html

Chris

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top