Utilisation de Git
Présentation de Git
Git est un SCM (Source Code Management), ou encore un VCS (Version Control System) tel que Subversion et Mercurial.
Git a été créé à l’origine par Linus Torvalds le créateur du projet du noyau Linux, et est distribué sous licence GNU GPL v2.
L’intérêt de ce type d’application est de pouvoir gérer les sources d’un projet à plusieurs, en ayant la possibilité de créer des branches et d’enregistrer les modifications une par une, ce qui permet de revenir en arrière et de suivre le développement.
Contrairement à Subversion, Git possède une architecture décentralisé, il n’y a donc pas de clients/serveur, chaque installation est identique et un client peut devenir serveur.
En pratique, on utilise un répertoire git sur lequel chacun va se synchroniser, et qui sera donc assimilé à un serveur git, il sert de base afin de créer les mirroirs chez chacun.
Ainsi en cas, de défaillance du serveur, il est toujours possible de reconstruire les données.
Git possède des commandes permettant de faciliter la gestion des branches et des tags, il est pour moi meilleur que Subversion.
Le principal avantage de Git est son algorithme de traitement des sources, en effet à chaque modification, il va non pas changer le fichier complet, mais va traiter uniquement les lignes modifiées, ce qui accélère le traitement.
La différence de vitesse au niveau du téléchargement des sources avec Git par rapport à Subversion se voit facilement.
Configurer Git
Choisir son pseudo et son email :
Pour avoir de jolies couleurs :
Les commandes de bases
Pour créer un nouveau dépot dans le dossier courant :
Pour ajouter une remote à votre dépot :
Pour récupérer les sources d’une branche particulière dans la branche où vous êtes :
Si vous voulez uniquement récuperer la branche master d’un dépot, vous pouvez utiliser une seule commande au lieu du git init + remote + pull :
Pour ajouter des fichiers à la modification en cours :
Pour enregistrer les modifications effectuées dans le dépot :
Il est possible d’éviter d’utiliser git add, mais je le déconseille, pour les fichiers déjà présent dans le dépot avec :
Vous pouvez aussi rendre quelqu’un d’autre auteur de la modification (on peut choisir le pseudo et/ou l’email) :
Pour envoyer les modifications sur le serveur :
Si la branche n’est pas suivie, il faudra le nom complet :
Vous pouvez la suivre automatiquement avec l’option -u, utile pour les nouvelles branches :
Pour afficher la différence entre la dernière version enregistré et votre copie de travail :
La gestion des branches
Pour créer une nouvelle branche qui suivra une branche distante (ici la branche master) :
Pour récupérer les sources de toutes les branches suivies (nécessaire si vous n’avez jamais pull ou clone avant de suivre une branche) :
Pour fusionner les sources d’une branche locale dans la branche actuelle :
Idem mais avec une branche distante :
Pour voir les branches existantes en local :
Pour voir les branches distantes :
Pour voir les deux :
Pour créer une nouvelle branche à partir de la branche actuelle et aller dedans :
Pour changer de branche :
Pour renommer une branche :
Pour supprimer une branche locale :
Pour supprimer une branche distante :
Aller plus loin
D’autres fonctionnalités sont disponibles, n’hésitez pas à utiliser git help pour les lister.
Renseignez vous notamment sur git reset.
Une autre fonctionnalité de git est la gestion des tags, cela permet de figer un développement, ce sont des points précis au cours du développement d’une application. C’est utilisé notamment pour les releases ;)