Git Cheat Sheet

Récemment, je me suis plongé dans l’apprentissage de Git.

Sans plus tarder, voici le matos: Git – Cheat Sheet

À noter que le document est en anglais. Il est bon de pratiquer son anglais à l’occasion…

Pourquoi utiliser Git?

Git un logiciel de gestion de version décentralisée et open source créé par Linus Torvalds, le créateur du noyau Linux. Git révolutionne la manière de gérer le code source lorsque comparé aux logiciels d’antan comme CVS, Subversion, Perforce, SourceSafe, etc. Dans un Google Tech Talk présentant Git, Linus Torvalds explique sa vision de CVS et Subversion ainsi:

“For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source control management system than CVS is, but I did end up using CVS for 7 years at a commercial company and I hate it with a passion. When I say I hate CVS with a passion, I have to also say that if there are any SVN (Subversion) users in the audience, you might want to leave. Because my hatred of CVS has meant that I see Subversion as being the most pointless project ever started. The slogan of Subversion for a while was “CVS done right”, or something like that, and if you start with that kind of slogan, there’s nowhere you can go. There is no way to do CVS right.”

(source: Tech Talk: Linus Torsvalds on git)

L’apprentissage de Git demande de mettre de côté tout ce que vous savez à propos des logiciels de gestion du passé. Les raisons derrière ceci sont multiples mais les principales sont les suivantes:

  • Distribué et non centralisé
    Git est un système distribué. Ceci veut dire que chaque personne possède une copie du code source sur son poste. Avec Git, il n’y a pas de notion de serveur centralisé contenant LE code source de toute l’entreprise. Un endroit où le code en production résidera de manière centrale peut exister, mais chaque équipe (développement, contrôle de qualité, déploiement, etc.) et même chaque individu possèdent sa copie du code. Le workflow défini par la compagnie dictera ensuite comment une nouvelle fonctionnalité ou un correctif transitera d’une équipe à l’autre jusqu’à ce qu’il soit mis en production. Le site Why Git is Better Than X propose quelques exemples de workflows avec Git.

  • Le committing
    Du fait que chaque personne possède sa version du code, chaque programmeur peut committeraussi souvent qu’il le veut dans son répertoire local et ce, avec tous les avantages que cela comporte:

    • Élimine la peur de committer au répertoire central et de briser le build – peur souvent éprouvée par les nouveaux stagiaires consciencieux de ne pas tout casser.

    • Une fois la peur de committer éliminée, le programmeur peut commiter aussi souvent qu’il le souhaite dans son propre répertoire sans craindre de briser le build courant.

    • Il bénéficie ainsi d’une traçabilité pointue de son code et permet de revenir en arrière plus facilement dans le cours d’un développement.

  • Le branching et merging
    Git élimine les traditionnels frissons de sueurs qu’impliquent le branching et le merging avec les logiciels traditionnels comme Subversion. Bien que ces derniers permettent de le faire, rares sont les programmeurs qui éprouvent un sentiment de bonheur et d’allégresse face à l’idée. Git pour sa part rend ce processus simple, rapide et efficace notamment grâce à sa gestion pointue des modifications.

  • Git est svelte
    Le répertoire contenant les fichiers sources (working directory) est souvent plus volumineux que le répertoire où Git stocke ses informations (repository), même si ce dernier contient des mois, voire années de commits.

  • Facilite le changement de nom de fichier
    Nul besoin d’indiquer à Git qu’un fichier a été renommé. Simplement renommer le fichier normalement et le tour est joué.

Transiter vers Git en douceur

Tel que mentionné dans le Google Tech Talk sur Git de Linus Torvalds, il est possible de faire cohabiter Git et Subversion.  Par exemple, Subversion peut contenir la version en production du code que chaque programmeur télécharge sur son poste où il utilisera Git localement pour travailler. Git peut être utilisé jusqu’au moment où l’équipe de contrôle de qualité verse dans Subversion les développements approuvés.

Bref, Git mérite considération! Pour plus d’information sur le sujet, voici quelques liens que j’ai utilisés lors de mon apprentissage:

Également, merci à François Lebel pour sa collaboration et son opinion d’expert sur le sujet.