W3docs

Dépôt Git

Définition d'un dépôt Git, initialisation et clonage avec git init et git clone, enregistrement et envoi des modifications.

Qu'est-ce qu'un dépôt Git ?

Un dépôt Git est l'espace de stockage de vos fichiers de projet, accompagné de l'historique complet de chaque modification qui leur a été apportée. Il vous permet de sauvegarder des versions de votre code (commits), de passer d'une version à l'autre et de collaborer avec d'autres personnes sans perdre votre travail.

Cette page couvre le cycle de vie complet d'un dépôt : sa création, la réalisation et l'enregistrement des modifications, sa connexion à un dépôt distant, et le partage de votre travail. Chaque étape renvoie à un chapitre dédié pour aller plus loin.

GitRepository

Le répertoire .git

Tout ce qui fait d'un dossier un dépôt réside dans un seul sous-répertoire caché appelé .git, situé à la racine du projet. Il contient l'historique des commits, les branches, les tags, la configuration et la zone de transit (staging area). Supprimez .git et il ne vous reste que des fichiers ordinaires — l'historique des versions est perdu. Copiez .git avec les fichiers et vous avez copié l'intégralité du dépôt.

Dépôts locaux et distants

Git est un système de contrôle de versions distribué, il existe donc deux types de dépôts avec lesquels vous travaillerez :

  • Un dépôt local réside sur votre propre machine. Vous y effectuez des commits, y créez des branches et consultez son historique hors ligne — aucune connexion réseau n'est nécessaire.
  • Un dépôt distant réside sur un serveur (par exemple GitHub ou Bitbucket). C'est la copie partagée vers laquelle votre équipe envoie ses modifications et depuis laquelle elle les récupère.

Un flux de travail classique consiste à modifier les fichiers localement, à les enregistrer sous forme de commits, puis à synchroniser ces commits avec le dépôt distant.

Git Init pour initialiser un nouveau dépôt

Utilisez la commande git init pour transformer un dossier existant en dépôt. Vous l'exécutez une seule fois, lorsque le projet n'a pas encore de contrôle de versions.

git init

git init

L'exécution de cette commande dans votre dossier de projet crée le sous-répertoire caché .git et affiche quelque chose comme :

Initialized empty Git repository in /path/of/project/.git/

Vous pouvez également créer le dépôt dans un dossier portant le nom que vous choisissez en une seule étape, en passant un répertoire en argument :

git init directory

git init <directory>

Cela crée le dossier (s'il n'existe pas) et initialise un dépôt Git vide à l'intérieur. Aucune branche ne pointe encore vers un commit ; la branche par défaut (généralement main ou master, selon votre version de Git et votre configuration) n'existe qu'après votre premier commit.

Git Clone pour cloner un dépôt existant

Si le projet existe déjà sur un serveur distant, vous n'exécutez pas git init. Utilisez plutôt git clone pour le copier sur votre machine. C'est également une opération unique par projet.

git clone repo url

git clone <repo url>

Le clonage télécharge l'historique complet et les fichiers de travail, et — contrairement à git init — configure automatiquement la source comme dépôt distant nommé origin. Cela signifie que vous pouvez utiliser git push et git pull immédiatement, sans aucune configuration supplémentaire.

Git Add et Git Commit pour enregistrer les modifications dans le dépôt

Enregistrer une modification est un processus en deux étapes dans Git. D'abord, git add déplace les modifications dans la zone de transit (également appelée index) — une zone tampon où vous choisissez exactement ce qui sera inclus dans le prochain instantané. Ensuite, git commit enregistre ce contenu indexé comme un point permanent dans l'historique. Séparer l'opération vous permet de ne committer qu'une partie de vos modifications à la fois.

Le flux ci-dessous crée un fichier, vérifie son statut, l'indexe et le committe :

  • changer de répertoire vers /path/of/project
  • créer un nouveau fichier GitCommit.txt avec le contenu "commit example for git repo"
  • exécuter git status pour confirmer que le nouveau fichier n'est pas suivi
  • exécuter git add GitCommit.txt pour le déplacer dans la zone de transit
  • exécuter git commit avec un message décrivant le travail effectué

git add and git commit

cd /path/of/project
echo "commit example for git repo" >> GitCommit.txt
git status
git add GitCommit.txt
git commit -m "added GitCommit.txt to the repo"

Exécutez git status à tout moment pour voir quels fichiers ne sont pas suivis, indexés ou modifiés. Seuls les fichiers que vous avez explicitement ajoutés avec git add sont inclus dans le prochain commit. Pour exclure complètement du dépôt les fichiers de build, les secrets ou les dépendances, listez-les dans un fichier .gitignore.

Git Remote Add pour se connecter à un dépôt distant

Si vous avez créé le dépôt avec git init, il n'a pas encore de dépôt distant. Ajoutez-en un avec la commande git remote. Par convention, le dépôt distant principal est nommé origin :

git remote add

git remote add origin <remote_repo_url>

Vérifiez que le dépôt distant a bien été enregistré avant d'envoyer vos modifications :

git remote -v

Cela affiche les URL de récupération et d'envoi pour chaque dépôt distant configuré, par exemple :

origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

(Les dépôts créés avec git clone ont déjà origin défini, vous pouvez donc ignorer cette étape.)

Git Push pour interagir avec le dépôt

Si vous avez utilisé git clone, un dépôt distant est déjà configuré, vous pouvez donc exécuter git push pour envoyer vos modifications. Si vous avez utilisé git init, vous devez d'abord ajouter un dépôt distant (voir ci-dessus). Vous pouvez utiliser un service Git hébergé comme GitHub ou Bitbucket, y créer un dépôt et utiliser l'URL fournie pour connecter votre projet local.

Après avoir ajouté le dépôt distant, vous pouvez y envoyer vos branches locales :

git push

git push -u origin main

L'option -u (abréviation de --set-upstream) fait deux choses : elle envoie vos modifications et lie votre branche locale à la branche distante correspondante. Une fois ce lien établi, vous pouvez exécuter simplement git push et git pull sans nommer le dépôt distant ni la branche à chaque fois.

Git Config pour la configuration et la mise en place

Avant votre premier commit, Git doit savoir qui vous êtes. La commande git config définit les options qui contrôlent l'identité de l'utilisateur, les préférences et le comportement du dépôt. Les paramètres s'appliquent à trois niveaux, chacun remplaçant le niveau plus large.

Utilisez l'option --global pour définir des options pour l'utilisateur actuel. Celles-ci s'appliquent à chaque dépôt que vous possédez, ce qui est le bon niveau pour votre nom et votre adresse e-mail :

git repository, git config global user.name

git config --global user.name <name>
git config --global user.email <email>

Utilisez --local (la valeur par défaut lorsque vous omettez un indicateur de niveau) pour définir une option uniquement pour le dépôt actuel. C'est pratique lorsqu'un projet nécessite une identité différente de votre valeur globale par défaut :

git repository, git config local user.email

git config --local user.email <email>

Utilisez --system pour définir la configuration pour chaque utilisateur et chaque dépôt sur la machine — par exemple un éditeur par défaut partagé :

git config system editor

git config --system core.editor <editor>

Lorsque la même clé est définie à plusieurs niveaux, local l'emporte sur global, et global l'emporte sur system, de sorte qu'une valeur par dépôt prend toujours la priorité.

Tout assembler

Pour un tout nouveau projet que vous souhaitez partager, la séquence complète est :

git init
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
echo "# My Project" >> README.md
git add README.md
git commit -m "Initial commit"
git remote add origin <remote_repo_url>
git push -u origin main

Si le projet existe déjà sur un dépôt distant, vous ignorez git init et git remote addgit clone <repo url> vous donne un dépôt prêt à l'emploi en une seule commande.

À partir de là, explorez les commandes individuelles : git add et git commit pour enregistrer le travail, git status pour l'inspecter, et git push / git pull pour synchroniser avec le dépôt distant.

Pratique

Pratique
Quels sont les aspects clés et les opérations liés à un dépôt Git ?
Quels sont les aspects clés et les opérations liés à un dépôt Git ?
Was this page helpful?