Git

Ce que j’aurais aimé savoir quand j’ai commencé GIT

Vous n’êtes pas très à l’aise avec cet outil et l’on vous demande de l’utiliser sur un projet ? Pas d’inquiétude, je vous ai préparé un article récapitulatif sur tout ce que j’aurais aimé savoir quand j’ai commencé à utiliser git.

Et si vous connaissez déjà très bien git, lisez quand même, peut être y apprendrez vous des choses. Surtout n’hésitez pas à donner le lien à vos développeurs qui arrivent dans l’univers de git, vous leurs ferez gagner de précieuses heures de recherche.

Git, les premiers pas

Si vous ne vous sentez vraiment pas à l’aise avec git, je vous conseille cette première prise de contact en démarrant avec try git, excellent tutoriel interactif d’environ 15 minutes.

Pour approfondir et consolider les acquis allez lire le tutoriel sur le site d’Atlassian, profitez-en pour découvrir les différents workflow inhérent à l’usage de l’outil.

Si vous avez encore des doutes vous pouvez suivre le tutoriel git immersion, qui devrait faire taire vos dernières craintes.

Si vous allez être amené à travailler sur la plate forme github, vous pouvez lire ce guide de démarrage très bien pensé : Hello World, your first github project.

Imprimez-vous un rappel des principales commandes de git : Git Cheat Sheet, si vous avez besoin de visualiser graphiquement le workflow de travail sous git utilisez cette cheat sheet intéractive pour git.

Git un peu plus loin

Notez l’adresse d’une excellente (et exhaustive) documentation de git : git-scm, et notamment le chapitre Getting started.

Préparez votre ligne de commande à avoir un prompt git qui déchire et ayez une configuration aux petits oignons.

Tapez git config --global help.autocorrect 1 dans votre terminal pour vous corriger automatiquement les commandes git que vous auriez mal tapée (le matin, au réveil, tout le monde à du mal).

Commencez à utiliser un workflow git, git branching model est l’un des plus connus. Vous pouvez aussi regarder le workflow github.

Apprenez à garder un historique propre et faites la différence entre un merge et un rebase.

Vous démarrer un projet, récupérez un gitignore configuré pour votre framework.

Si vous travaillez avec github, apprenez toutes les astuces et fonctions cachées de la plateforme.

Si après toutes ces lectures vous n’êtes toujours pas sûr de vous, Christophe Porteneuve propose d’excellente formation git.

Ce que vous voulez savoir mais vous ne le savez pas encore

Voici une liste de commandes que j’aurais aimé connaître quand j’ai commencé à utiliser git :

  • Vous avez fait une erreur sur votre dernier commit (mauvais message ou oublie de fichier) : git --amend vous permet de merger le dernier commit avec votre stagging courant et de modifier le message du commit.
  • Vous souhaitez ajouter l’ensemble des modifications et des nouveaux fichiers au stagging : git add --all
  • Vous avez ajouté un fichier dans le stagging mais en fait vous ne le vouliez pas (vous avez encore fait un gros git add –all) : get reset HEAD (ou pour juste un/des fichier(s) : git reset HEAD filenames)
  • Vous souhaitez annuler les modifications que vous avez fait sur un fichier : git checkout filename
  • Vous voulez revenir à la branche où vous étiez précédemment : git checkout -
  • Vous souhaitez connaitre quelles sont les branches déjà fusionnées avec votre branche courante : git branch --merged (et le contraire --no-merged).
  • Vous voulez lister les différences entre votre dépôt local et un dépôt distant : git fetch puis git diff master origin/master (pour la branche master sur le remote origin).
  • Vous voulez avoir un git status un peu plus joli : git status -sb
  • Vous souhaitez donner un nom à votre stash : git stash save "message"
  • Vous souhaitez nettoyer un fichier : git stripspace < README.md va supprimer tout les espaces inutiles.
  • Vous souhaitez naviguer dans le dépôt et son historique git instaweb vous lance une interface web.
  • Vous souhaitez vous connecter à plus d'un serveur distant : git remote add upstream https://url.torepo.com/reponame.git ajoute le dépot reponame en tant que serveur remote (nommé dans notre cas upstream), il devient possible de faire des git pull upstream ou git push upstream.

Si vous pensez que j’ai oublié une commande git intéressante, n’hésitez pas à l’indiquer en commentaire !