Git

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Sommaire

Description

Git est un gestionnaire de code source décentralisé, rapide, et sécuritaire. Le site web de Git est gitscm.org. Le logiciel Git a été initialement créé par Linus Torvalds pour le projet Linux. Le mainteneur de Git est présentement Junio Hamano. Le développement de Git se fait sur la plateforme de kernel.org.

Principe de fonctionnement

Contrairement aux gestionnaires CVS et SVN, et similairement à Mercurial, Git fonctionne sous un mode décentralisé. Cela signifie que 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 au complet. Chaque objet (modification, fichier, répertoire) correspond à 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 soit fusionnée avec le tronc commun. Pour une explication détaillée du modèle de développement en branches, nous vous conseillons cette page (en anglais).

Une technique de développement intéressante est le cherry-picking, qui correspond à prendre une partie d'une branche et à la fusionner dans une autre. Cette page décrit l'utilisation de cette technique avec Git.

Utilisation de base

De manière générale, une personne désirant travailler sur un projet doit :

  1. cloner ou créer le dépôt;
  2. apporter les modifications;
  3. archiver les modifications;
  4. propager les changements vers le dépôt d'origine.

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

Résumé des commandes

Commandes de base
Commande Description
git config Configurer le logiciel
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 dans l'index
git rm Supprimer un fichier ou un répertoire de l'index
git commit Archiver des modifications
git push Propager des modifications archivé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 données d'un autre dépôt sans les appliquer au vôtre
git merge Fusionner les changements


Commandes pour voir les changements
Commande Description
git blame Connaître l'origine de chaque modification
git log Voir l'historique des enregistrements
git diff Voir les différences entre deux versions
git status Afficher le statut des fichiers
git show Afficher différents types d'objets
git cat-file Obtenir le contenu, le type ou la taille d'objets


Commandes pour les branches, étiquettes et dépôts distants
Commande Description
git branch Gérer les branches de développement
git tag Gérer les étiquettes de version
git remote Gérer les dépôts distants
git checkout Extraire une branche ou un chemin
git reset Changer la tête


Commandes pour les 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

Pour débuter, il est possible de créer son propre dépôt ou bien de cloner un dépôt existant.

Pour créer un dépôt :

[nom@serveur $]  git init mon-projet


Pour cloner un dépôt :

[nom@serveur $]  git clone git://github.com/git/git.git


Archiver un changement

Lorsque le dépôt est prêt, il faut se déplacer à l'intérieur.

 
 [nom@serveur $] cd mon-projet
 [nom@serveur $] nano fichier.txt
 


Lorsque le travail fait est prêt, il faut l'ajouter

[nom@serveur $]  git add fichier.txt


et l'archiver

[nom@serveur $]  git commit


Ensuite, il est possible de pousser les changements vers le dépôt d'origine avec

[nom@serveur $]  git push origin master


Dans la commande précédente, origin est le dépôt distant et master est la branche qui doit être propagée.

Hébergement de dépôts Git

GitHub et Bitbucket sont deux des principaux services d'hébergement de dépôts Git qui sont disponibles commercialement. Les deux offrent aussi des dépôts Git gratuits.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager