git init
Cette page présentera la commande git init
en détail. À la fin de cette page, vous connaîtrez la fonctionnalité de base et l'ensemble des fonctions étendues de git init
. Cette présentation inclut ce qui suit :
- Options et utilisation de
git init
- Présentation du répertoire
.git
- Valeurs d'environnement de répertoire
git init
personnalisées git init
etgit clone
- répertoires bruts
git init
- Modèles
git init
La commande git init
crée un nouveau dépôt Git. Elle permet de convertir un projet existant, sans version en un dépôt Git ou d'initialiser un nouveau dépôt vide. La plupart des autres commandes Git ne sont pas disponibles hors d'un dépôt initialisé, il s'agit donc généralement de la première commande que vous exécuterez dans un nouveau projet.
L'exécution de git init
créer un sous-répertoire .git
dans le répertoire de travail actif, qui contient toutes les métadonnées Git nécessaires pour le nouveau dépôt. Ces métadonnées incluent des sous-répertoires pour des objets, des réfs et des fichiers de modèle. Un fichier HEAD
est également créé et pointe vers le commit actuellement extrait.
Outre le répertoire .git
, dans le répertoire racine du projet, un projet existant reste inchangé (contrairement à SVN, Git ne nécessite pas de sous-répertoire .git
dans chaque sous-répertoire).
Par défaut, git init
initialisera la configuration Git dans le chemin d'accès au sous-répertoire .git
. Le sous-répertoire peut être modifié et personnalisé si vous souhaitez le placer autre part. Vous pouvez définir la variable d'environnement $GIT_DIR
sur un chemin d'accès personnalisé, où git init
initialisera les fichiers de configuration Git. En outre, vous pouvez transmettre l'argument --separate-git-dir
pour le même résultat. Une utilisation courante d'un sous-répertoire .git
distinct consiste à garder les fichiers « dotfiles » de votre configuration système (.bashrc
, .vimrc
, etc.) dans le répertoire de base, tout en conservant le dossier .git
autre part.
Ressource connexe
branche git
DÉCOUVRIR LA SOLUTION
Découvrir Git avec Bitbucket Cloud
Utilisation
Comparée à SVN, la commande git init
permet de créer de nouveaux projets sous contrôle de version. Git ne nécessite pas la création d'un dépôt, l'importation de fichiers et l'extraction d'une copie de travail. En outre, Git ne nécessite pas de serveur pré-existant, ni de privilèges administrateur. Il vous suffit d'accéder à votre sous-répertoire de projet et d'exécuter git init
: vous disposez à présent d'un dépôt Git entièrement fonctionnel.
git init
Transformez le répertoire actuel en dépôt Git. Cela permet d'ajouter un sous-répertoire .git
au répertoire actuel et de commencer à enregistrer les révisions du projet.
git init <directory>
Créez un dépôt Git vide dans le répertoire spécifié. L'exécution de cette commande créera un sous-répertoire appelé
Si vous avez déjà exécuté git init
sur le répertoire d'un projet et qu'un sous-répertoire .git
existe, vous pouvez à nouveau exécuter git init
en toute sécurité sur le même répertoire de projet. La commande n'écrasera pas une configuration .git
existante.
git init et git clone
Petite remarque : git init
et git clone
sont facilement confondues. À un niveau supérieur, les deux commandes permettent d'« initialiser un nouveau dépôt Git ». Toutefois, git clone
dépend de git init
. git clone
permet de créer une copie d'un dépôt existant. En interne, git clone
appelle d'abord git init
pour créer un dépôt. Elle copie ensuite les données du dépôt existant, puis fait un check-out d'un nouvel ensemble de fichiers de travail. Découvrez-en plus sur la page git clone.
Dépôts bruts --- git init --bare
git init --bare <directory>
Initialisez un dépôt Git vide, mais omettez le répertoire de travail. Les dépôts partagés doivent toujours être créés avec le flag --bare
(voir discussion ci-dessous). Par convention, les dépôts initialisés avec le flag --bare
se terminent par .git
. Par exemple, la version bare d'un dépôt appelé my-project
doit être stockée dans un répertoire appelé my-project.git
.
L'indicateur --bare
crée un dépôt qui ne dispose pas de répertoire fonctionnel, rendant impossible d'éditer les fichiers et de commiter les changements dans ce répertoire. Vous créeriez un dépôt brut depuis lequel exécuter les commandes git push et git pull, mais dans lequel vous ne pourriez jamais faire de commit. Les dépôts centralisés doivent toujours être créés sous forme de dépôts bruts, car pusher des branches dans un dépôt non brut peut écraser les changements. Songez à --bare
comme à un moyen de marquer un dépôt comme installation de stockage, par opposition à un environnement de développement. Pour la grande majorité des workflows Git, cela signifie que le dépôt centralisé est brut et les dépôts locaux des développeurs ne le sont pas.
Le cas d'usage le plus courant pour git init --bare
consiste à créer un dépôt distant centralisé :
ssh <user>@<host> cd path/above/repo git init --bare my-project.git
D'abord, établissez une connexion SSH au serveur contenant votre dépôt centralisé. Ensuite, accédez à l'emplacement où vous souhaitez stocker le projet. Enfin, utilisez le flag --bare
pour créer un dépôt de stockage centralisé. Les développeurs peuvent ensuite cloner my-project.git
pour créer une copie locale sur leur machine de développement.
Modèles git init
git init <directory> --template=<template_directory>
Initialise un nouveau dépôt Git et copie les fichiers depuis le répertoire <répertoire_modèles>
dans le dépôt.
Les modèles vous permettent d'initialiser un nouveau dépôt avec un sous-répertoire .git
prédéfini. Vous pouvez configurer un modèle pour qu'il contienne des répertoires et des fichiers par défaut qui seront copiés dans le sous-répertoire .git
d'un nouveau dépôt. Les modèles Git par défaut se situent généralement dans un répertoire `/usr/share/git-core/templates`
. Mais le chemin d'accès peut être différent sur votre machine.
Les modèles par défaut constituent une bonne référence et un parfait exemple d'utilisation des fonctionnalités de modèle. La configuration des hooks Git est une fonctionnalité puissante des modèles présentée dans les modèles par défaut. Vous pouvez créer un modèle avec des hooks Git prédéfinis et initialiser vos nouveaux dépôts Git avec des hooks communs prêts à être utilisés. Pour en savoir plus sur les hooks Git, consultez la page Hooks Git.
Configuration
git init <directory> --template=<template_directory>
Toutes les configurations de git init
acceptent un argument <répertoire>
. Si vous fournissez l'argument
, la commande y est exécutée. Si ce répertoire n'existe pas, il sera créé. Outre les options et la configuration déjà évoquées, git init
dispose de quelques autres options de ligne de commande. Voici la liste complète :
-Q
--QUIET
Imprime uniquement les messages « de niveau critique », les erreurs et les avertissements. Toute autre sortie est annulée.
--BARE
Crée un dépôt brut. (Reportez-vous à la section « Dépôts bruts » ci-dessus.)
--TEMPLATE=
Spécifie le répertoire à partir duquel les modèles seront utilisés. (Reportez-vous à la section « Modèles Git Init » ci-dessus.)
--SEPARATE-GIT-DIR=
Crée un fichier texte contenant le chemin vers
. Ce fichier agit comme un lien vers le répertoire .git
. C'est utile si vous souhaitez stocker votre répertoire .git
dans un emplacement ou disque distinct des fichiers de travail de votre projet. Voici quelques cas d'usage pour --separate-git-dir
:
- Pour garder les fichiers « dotfiles » de votre configuration système (
.bashrc, .vimrc
, etc.) dans le répertoire de base, tout en conservant le dossier.git
autre part - Votre historique Git occupe un espace disque très important, vous devez le migrer vers un disque haute capacité distinct.
- Vous souhaitez avoir un projet Git dans un répertoire public comme
`www:root`
Vous pouvez appeler git init --separate-git-dir
sur un dépôt existant, et .git dir
sera déplacé vers le chemin
spécifié.
--SHARED[=(FALSE|TRUE|UMASK|GROUP|ALL|WORLD|EVERYBODY|0XXX)]
Définissez les permissions d'accès pour le nouveau dépôt. Cela spécifie les utilisateurs et les groupes utilisant les permissions de niveau Unix qui sont autorisés à effectuer un push/pull vers le dépôt.
Exemples
Créer un nouveau dépôt Git pour une base de code existante
cd /path/to/code \
git init \
git add . \
git commit
Créer un nouveau dépôt brut
git init --bare /path/to/repo.git
Créer un modèle git init et initialiser un nouveau dépôt Git depuis le modèle
mkdir -p /path/to/template \
echo "Hello World" >> /absolute/path/to/template/README \
git init /new/repo/path --template=/absolute/path/to/template \
cd /new/repo/path \
cat /new/repo/path/README
Partager cet article
Thème suivant
Lectures recommandées
Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.