Git

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page Git and the translation is 100% complete.
Other languages:

Description

Git est un outil distribué rapide et sécuritaire pour la gestion de code source (site web, gitscm.org). L’application a été créée pour le projet Linux par Linus Torvalds et est maintenue par Junio Hamano. Le développement de Git se fait sur la plateforme kernel.org.

Principe de fonctionnement

Contrairement aux outils de gestion de code source moins récents, Git fonctionne en mode décentralisé et les développeurs ne sont pas dépendants d'un dépôt central pour archiver des modifications. Chaque dépôt Git contient l’historique de l’arbre de travail complet. Chaque objet Git (modification ou changeset, fichier, répertoire) est une feuille d’un arbre à branches multiples. Le développement d'un projet avec Git est basé sur un modèle où une branche correspond à une fonctionnalité. Plusieurs itérations de la fonctionnalité peuvent être archivées avant que celle-ci ne soit fusionnée avec le tronc commun. Pour les détails sur le modèle de développement en branches, voyez A successful Git branching model.

Une technique particulièrement intéressante est celle de la cueillette de cerises (cherry picking) qui consiste à prendre une partie d’une branche pour la fusionner avec une autre.

Utilisation

Règle générale, un développeur doit pouvoir

  1. cloner ou créer le dépôt;
  2. effectuer les modifications;
  3. faire un commit des modifications;
  4. propager les modifications vers le dépôt d’origine.

Puisque Git est décentralisé, il n'y a pas nécessairement dépôt autoritaire.

Sommaire des commandes

Commandes de base
Commande Description
git config configurer Git
git init créer un nouveau dépôt
git clone cloner un dépôt existant
git add ajouter un fichier ou un répertoire à l’index
git rm supprimer un fichier ou un répertoire de l’index
git commit valider et enregistrer (commit) les modifications dans un dépôt
git push propager les modifications validées et enregistrées vers un autre dépôt
git pull récupérer les données d'un autre dépôt et appliquer (‘’merge’’) les modifications à votre dépôt
git fetch récupérer les modifications d’un différent dépôt sans les appliquer à votre dépôt
git merge fusionner les changements


Commandes pour voir les changements
Commande Description
git blame connaître l’origine de chaque modification
git log avoir l’historique des enregistrements
git diff voir les différences entre deux versions
git status afficher le statut des fichiers
git show afficher divers types d’objets Git
git cat-file obtenir le contenu, le type ou la taille d’objets


Commandes relatives aux branches, étiquettes et dépôt distants
Commande Description
git branch gérer les branches de développement
git tag gérer les étiquettes de versions
git remote gérer les dépôts distants
git checkout extraire une branche ou un chemin
git reset changer la tête


Commandes relatives aux rustines
Commande Description
git format-patch créer une rustine
git am appliquer une rustine
git send-email envoyer une rustine


Autres commandes
Commande Description
git bisect rechercher rapidement un problème
git gc nettoyer le dépôt
git rebase linéariser l’historique
git grep chercher le contenu

Créer ou cloner un dépôt

La première étape est habituellement de créer votre propre dépôt ou de cloner un dépôt existant.

Pour créer un dépôt :

Question.png
[name@server ~]$  git init my-project

Pour cloner un dépôt :

Question.png
[name@server ~]$  git clone git://github.com/git/git.git

Valider et enregistrer une modification

Quand le dépôt est prêt, changez de répertoire et éditez le fichier.

[name@server ~]$ cd my-project
[name@server ~]$ nano file.txt


Quand le travail est terminé, ajoutez le fichier

Question.png
[name@server ~]$  git add file.txt

et faites un commit de la modification.

Question.png
[name@server ~]$  git commit

Il est maintenant possible de propager les modifications au dépôt original avec

Question.png
[name@server ~]$  git push origin main

Dans cette dernière commande, origin est le dépôt à distance et main est la branche courante qui sera propagée.

Avec les dépôts Git moins récents, vous devrez peut-être devoir utiliser git push origin master.

Hébergement de dépôts Git

GitHub et Bitbucket sont les deux principaux services d’hébergement de Git. Ils sont tous les deux disponibles pour les projets commerciaux comme pour les projets libres.