web-dev-qa-db-fra.com

Comment créer un fichier d'attributs Git

Je voudrais ajouter un fichier d'attributs à mon référentiel Git comme décrit ici . Cela indique que je devrais inclure .gitattributes dans le dossier racine de mon référentiel.

  • Est .gitattributes simplement un fichier ou un dossier? Comment créer ce fichier/dossier?

    Windows génère les erreurs suivantes:

    "Impossible de créer un fichier sans nom de fichier"

    "Vous devez saisir un nom de fichier"

  • Où faut-il ajouter le fichier? Sous la racine du référentiel, X:\PATH\TO\Repository\, ou le dossier Git, X:\PATH\TO\Repository\.git\?

  • Les attributs seront-ils appliqués pour les autres contributeurs clonant/bifurquant mon référentiel?

    par exemple. Si je poussais vers GitHub ou GitLab et qu'une autre partie retirait une copie, les attributs que j'aurais ajoutés seraient-ils également appliqués à leur machine?

Connexes: Git Ignore

Remarque: J'utilise TortoiseGit et msysgit sur une plate-forme Windows si cela aide.

26
Carel

Est-ce que .gitattributes un fichier ou un dossier? Comment le créer?

  • Windows: Créez un nouveau fichier texte (clic droit> nouveau> fichier texte) dans l'Explorateur Windows et renommez-le (Raccourci: F2) comme suit

    .gitattributes.
    

    Remarque: Soit DOT + gitattributes + DOT, Windows supprimera le DOT de fin pour que vous produisiez le nom de fichier approprié

  • Linux: et ses variantes (Gentoo, Raspberry Pi, Mac OS etc.)

    touch .gitattributes
    
  • Alternativement: Clonez le référentiel Git Attributes et déplacez/copiez le .gitattributes fichier applicable à votre référentiel (notes de bas de page 1 et 2).

Où faut-il ajouter le fichier? Sous la racine du référentiel, X:\PATH\TO\Repository\, ou le dossier Git, X:\PATH\TO\Repository\.git\?

Il existe deux emplacements où l'on peut ajouter le fichier d'attributs Git

    \Repository                        (1)
    \Repository\.git\info\attributes   (3)
  1. Ajout d'un .gitattributes le fichier définit ici les attributs "Universellement".
  2. Création du .gitattributes le fichier définit ici les attributs "Personnellement", c'est-à-dire le référentiel sur sa propre machine. Bien que déconseillé, vous pouvez avoir bonne raison pour le faire.

Les attributs seront-ils appliqués pour les autres contributeurs clonant/bifurquant mon référentiel?

À condition que le fichier soit validé dans le référentiel, il sera cloné lorsque le référentiel est cloné et les attributs appliqués sur les machines des contributeurs de l'un projetent en conséquence (Footnote: 3 et 4). Les attributs sont appliqués "globalement" lorsque .gitattributes est ajouté à la racine du projet, X:\PATH\TO\Repository\.gitignore et "Localement" lorsqu'ils sont ajoutés à un sous-dossier, X:\PATH\TO\Repository\SOME\SUB-FOLDER\.gitignore.


Note (s):

  1. Une certaine prudence doit être prise si vous utilisez le stockage de fichiers volumineux (Git LFS) car ces fichiers peuvent ne pas être compatibles avec LFS ou vice versa. De plus, LFS créera .gitattributes pour vous lorsque vous configurez le suivi.
  2. Par coïncidence, il existe également un référentiel pour Git Ignore .
  3. Au départ, lorsque j'ai posé la question pour la première fois, j'étais préoccupé par le traitement correct des fins de ligne; .gitattributes gère bien cela mais il est préférable que chaque contributeur configure correctement git sur ses propres machines.
  4. Ne soyez pas l'idiot qui ajoute .gitattributes à la .gitignore fichier. Oui, cela appliquera les attributs "Personnellement" mais quelqu'un remplacera votre solution de contournement "Globalement" un jour et il y aura des larmes et des étreintes ... beaucoup d'étreintes !!!
26
Carel