Description : Initialise un nouveau repository Git.

Syntaxe : git init [<directory>] [options]

Voici un tableau récapitulatif clair et structuré de la commande git init avec ses options principales et un exemple d’utilisation pour chacune :

OptionDescriptionExemple
Initialise un repository Git dans le dossier courant (avec working directory).git init
--bareInitialise un repository bare sans working directory (uniquement les données internes Git).git init --bare monrepo.git
--template=<répertoire>Utilise un répertoire de template personnalisé pour initialiser le dépôt (hooks, etc.).git init --template=/chemin/templates
--separate-git-dir=<répertoire>Place le dossier .git ailleurs (hors du répertoire courant).git init --separate-git-dir=/chemin/.git
--shared[=valeur]Définit les permissions d’accès au dépôt (ex : privé, groupe, public, code octal).git init --shared=group
-q, --quietMode silencieux, affiche uniquement les messages critiques ou erreurs.git init --quiet
-b <branche>, --initial-branch=<branche>Définit le nom de la branche initiale (ex : main ou master).git init --initial-branch=main
--object-format=<format>Définit le format d’objet Git (sha1 par défaut, sha256 si activé).git init --object-format=sha256
--ref-format=<format>Définit le format des références Git (files ou reftable).git init --ref-format=reftable

Quelques précisions rapides :

  • -bare : utile pour créer un dépôt central sans copie des fichiers, par exemple pour partager sur un serveur.
  • -template : permet d’ajouter des hooks personnalisés ou fichiers de config au moment de l’initialisation.
  • -shared : très utile sur un serveur ou dépôt multi-utilisateurs pour gérer permissions (ex : group pour accès en groupe).
  • -initial-branch : important pour nommer la branche principale, souvent main de nos jours au lieu de master.

Explications supplémentaires :

  • Repository bare : Pas de copie des fichiers sources, uniquement le dossier .git à la racine. Utile comme dépôt central.
  • Template : Permet d’ajouter des hooks ou fichiers par défaut à la création.
  • Separate git dir : Sépare les données Git du code pour organiser le stockage.
  • Shared : Pour contrôler qui peut accéder au repo.
  • Initial branch : Moderne permettant de nommer la branche initiale (ex : main au lieu de master).
  • Object and ref formats : Options avancées pour les mécanismes Git internes.

Exemple minimal pour un repo normal :

git init

Exemple d’un repo bare pour serveur :

git init --bare projet.git

Exemple avec template personnalisé :

git init --template=/usr/share/git-core/templates/mytemplate

Exemple pour changer le nom de branche par défaut :

git init -b main