Hello! Aujourd’hui je vais vous parler de Git.

Git est le système de contrôle de version distribué (ou simplement l’outil de collaboration) le plus célèbre et le plus performant jusqu’à présent.

Dans cet article, je partage avec vous une liste (non exhaustive) de commandes Git utiles. Ces commandes ont été initialement postées sur Twitter par eliaswalyba.

En effet, Elias est un Senior AI/ML consultant et CoFounder DopeLab and @GalsenAI. Vous pouvez le retrouver sur Twitter, GitHub, LinkedIn, et YouTube (il y publie des tutoriels).

Maintenant, passons aux choses sérieuses!

Installer Git

Pour installer Git, rendez-vous sur le site https://git-scm.com/downloads. Téléchargez la distribution correspondante à votre système et installez-la.

Sur Ubuntu, ouvrez votre terminal et tapez:

$ sudo apt install git

Et le tour est joué. Vous avez Git installé.

Dans la suite de cet article, toutes les commandes que je vous présente s’exécutent sur un terminal (cmd pour Windows). Cependant, il existe des outils graphiques qui vous permettent de manipuler Git. Mais pour un début, je ne vous les conseille pas.

Premières configurations

Configurer les informations utilisateur pour tous les référentiels locaux:

$ git config --global user.name "Votre nom"

Définit le nom que vous voulez attacher à vos transactions de commit.

$ git config --global user.email "Votre adresse email"

Définit l’email que vous voulez attacher à vos transactions de commit.

$ git config --global color.ui auto

Active la colorisation utile de la sortie en ligne de commande.

Créer des dépôts

Démarrer un nouveau référentiel ou en obtenir un à partir d’une URL existante:

$ git init nom_du_projet

Crée un nouveau référentiel local avec le nom spécifié.

$ git clone url

Télécharge un projet et l’historique de ses versions.

Faire des changements

Vérifier les modifications et créer une transaction de validation:

$ git status

Répertorie tous les fichiers nouveaux ou modifiés à valider.

$ git add nom_du_fichier

Capture instantanée du fichier en préparation (ou . pour tout ajouter).

$ git reset [fichier]

Décompose le fichier mais conserve son contenu.

$ git diff

Affiche les différences de fichier non encore mises en scène.

$ git diff --staged

Affiche les différences de fichier entre le transfert et la dernière version du fichier.

$ git commit -m "Une petite description de votre commit"

Enregistre les fichiers de manière permanente dans l’historique des versions.

Regrouper des changements

Nommer une série de commits et combiner les efforts accomplis:

$ git branch

Répertorie toutes les branches locales du référentiel actuel.

$ git branch nom-branche

Crée une nouvelle branche.

$ git checkout nom-branche

Bascule vers la branche spécifiée et met à jour le répertoire de travail.

$ git merge nom-branche

Combine l’historique de la branche spécifiée dans la branche actuelle.

$ git branch -d nom-branche

Supprime la branche spécifiée.

Modifications sur les fichiers

Déplacer et supprimer les fichiers versionnés:

$ git rm nom_fichier

Supprime le fichier du répertoire de travail.

$ git rm --cached nom_fichier

Supprime le fichier du contrôle de version mais conserve le fichier localement.

$ git mv ancien_nom_fichier nouveau_nom_fichier

Change le nom du fichier et le prépare pour le commit.

Exclusion de fichier

Exclure les fichiers temporaires et les chemins:

Pour exclure certains fichiers (ne pas les tracker par Git), créez un fichier nommé .gitignore et mettez-y tous les fichiers que vous voulez exclure.

$ git ls-files --other --ignored --exclude-standard

Répertorie tous les fichiers exclus dans ce projet.

Sauvegarder des fragments de fichiers

Doubler et restaurer les modifications incomplètes:

$ git stash

Stocke temporairement tous les fichiers suivis modifiés.

$ git stash list

Répertorie tous les changements cachés.

$ git stash pop

Restaure les derniers fichiers cachés.

$ git stash drop

Ignore le plus récent jeu de modifications stocké.

Voir l’histoire de votre projet

Parcourir et inspecter l’évolution des fichiers de projet:

$ git log

Répertorie l’historique des versions de la branche actuelle.

$ git log --follow nom_fichier

Répertorie l’historique des versions d’un fichier, renommage compris.

$ git diff nom-branche-1 ... nom-branche-2

Affiche les différences de contenu entre deux branches.

$ git show hash-du-commit

Affiche les métadonnées et les modifications de contenu du commit spécifié.

Refaire des commits

Effacer les erreurs et l’historique des remplacements:

$ git reset hash-du-commit

Annule tous les commits après [hash-du-commit], en préservant les modifications localement. Le hash-du-commit est un identifiant unique octroyé à chaque commit. Par exemple, 793e57778a8e33ee61044a8255ee3b37368596a7 est un hash-du-commit.

$ git reset --hard hash-du-commit

Ignore tout l’historique et rétablit le commit spécifié.

Synchroniser vos changements (sur un serveur)

Enregistrer un signet de référentiel et échanger l’historique des versions:

$ git fetch url

Télécharge tout l’historique du signet du référentiel.

$ git push url nom-branche

Télécharge tous les commits des branches vers un serveur.

$ git pull url nom-branche

Télécharge l’historique des signets et intègre les modifications.

Voilà en gros quelques commandes de Git qu’Elias a publiées sur son fil Twitter.

Après, je ne retiens pas toutes les commandes, mais sur internet vous pouvez trouver plein de ressources pour apprendre à utiliser Git. C’est une technologie incontournable maintenant, surtout dans le milieu professionnel, et malheureusement on en parle jamais dans les universités / instituts de formation.

Enjoy! A+!