19 commandes git indispensables pour les développeurs

Commandes Git

Vous voulez apprendre les commandes de base de git ? Vous connaissez git push git pull et git clone et voulez apprendre plus du commandes ? Vous perdez du temps car vous ne maitrisez pas git ?

Alors ce top des commandes git les plus utiles est fait pour vous !

Git est un logicel de controle de version (version control) qui permet d’avoir un historique les modifications apportees a son code ou a celui des autres. Ce projet open-source gratuit est un standard de l’industrie que tout developpeur se doit de connaitre sur le bout des doigts !

Apres avoir lu cet aricle vous serez capables de :

  • manipuler des branches
  • pousser du code avec git sur github ou un autre serveur git (push)
  • telecharger du code de github (clone)
  • ecrire proprement vos messages commit
  • maitriser votre flow localement

Commencons sans plus tarder a explorer les commandes git les plus utiles !

git config

git config

Pour configurer votre username et l’adresse email à utiliser pour vos commits. Le flag -global rend ces changements persistants sur votre machine plutot qu’uniquement pour le projet.

git config username

git config –global user.name <votre_nom_d'utilisateur>

git config email

git config –global user.email <votre_adresse_email>

Si vous travaillez depuis plusieures machines et que vos commit semblent afficher differents emails ou pseudo, c’est parceque vous n’avez pas la meme configuration !

git init

git init

Pour initialiser un nouveau repo, utilisez la commande :

git init <le_nom_de_votre_repo_git>

git init bare

Un repo initalisé avec le flag bare n’aura pas de working tree. Ce qui veut dire qu’on ne pourra pas simplement git add des fichiers pour ensuite les commit et les push. D’ailleurs si vous git init --bare un dossier et puis tapez ls -la vous verrez que git n’a pas genere de .git mais plutot ce qui se trouve habituellement dans un dossier cache .git, directement a la racine de votre dossier.

git init --bare <nom_de_depot>

Mais alors a quoi sert git init — bare ?

On initialise un repo avec bare quand on veut par exemple, trigger des git hooks quand une certaine action se produit. On peut ainsi mettre en production des projets a chaque nouveau commit.

git init --bare est aussi utile quand on travaille en equipe et qu’on veut un remote repository commun, pour ne pas poluer le repo et n’avoir que les commit, on met a jour le repo sur github ou sur un autre serveur git uniquement avec des git push, sans modifier le code directement (comme il n’y a pas de working tree).

Par convention, quand on initialise un repo avec git init --bare, on ajoute .git en fin de nom de dossier. Ainsi, monprojet devient monprojet.git

git clone

git clone

Pour cloner un dépôt à partir d’une URL existante (github, gitlab, serveur git prive, …).

git clone <url_du_depot_git>

git add

git add

Pour ajouter un fichier en staging. On peut add un ou plusieurs fichiers et certains flags sont comme le flag --patch sont particulierement utiles.

git add <nom_du_ou_des_fichier(s)>
git add *
git add --patch *

Le flag —patch lance un programme interactif qui vous permet d’ajouter en staging ou pas certains bouts de code. Vous aurez plusieurs options comme split pour diviser encore plus le code en morceaux. --patch est parfait si vous avec fait plusieurs modifications dans un fichier mais que vous ne voulez commit qu’une modification dans ce meme fichier.

git commit

git commit

Pour enregistrer vos changements dans l’historic Git.

git commit proprement

Idealement, vous avez configure VIM, Emacs ou un autre editeur de texte pour qu’il soit votre editeur de texte Git.

Apres, pour ecrire votre message de commit proprement et eviter les symboles qui cassent vos commit, tapez :

git commit

Votre editeur de texte se lance et vous pouvez formater votre message proprement avec les conventions que vous utilisez.

git commit avec un message directement

Pour aller plus vite, vous pouvez aussi directement mettre votre message en ligne de commande avec le flag -m.

git commit -m <votre_message_de_commit>

git commit les changements

Pour commit les fichiers que vous avez ajoutés avec la commande git add et de commit également les fichiers que vous avez modifiés depuis.

git commit -a

git diff

git diff

Pour afficher les différences de fichiers qui ne sont pas encore staged.

git diff

git diff staged

Pour afficher les différences entre les fichiers dans staging et la version présente.

git diff –staged

git diff deux branches

Voir les différences entre les deux branches mentionnées.

git diff <branche_une> <branche_deux>

git reset

git reset

Pour retirer le fichier de staging, mais préserve son contenu.

git reset <fichier>

Parfait pour retirer un ficher staged sans faire expres et garder des commit propres : un changement = un commit.

Pour annuler tous les commit après le commit spécifié et préserve les modifications localement.

git reset commit

git reset <hash_du_commit>

git reset hard

Pour supprimer tout l’historique et revient au commit spécifié.

git reset –hard <hash_du_commit>

git status

git status

Pour lister tous les fichiers qui doivent être commit et leur etats : untracked et to be committed.

git status

git rm

Pour supprimer le fichier de votre répertoire de travail et stage la suppression.

git rm <fichier>

git log

Pour lister l’historique des versions de la branche courante.

git log

Pour lister l’historique des versions d’un fichier, y compris le renommage des fichiers.

git log –follow <nom_du_fichier>

git show

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

git show <hash_du_commit>

git tag

Pour donner un tags au commit spécifié.

git tag <hash_du_commit>

git branch

git branch

Pour lister toutes les branches locales dans le dépôt actuel.

git branch

Pour créer une nouvelle branche.

git branch <branche>

Pour supprimer une certaine branche.

git branch -d <branche>

git checkout

Pour passer d’une branche à l’autre.

git checkout <branche>

Pour créer une nouvelle branche et switcher directement à celle-ci.

git checkout -b <branche>

Si vous avez bien suivi, c’est l’equivalent de git branch <nouvelle_branche> suivi de la commande git checkout <nouvelle_branche>

git merge

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

git merge <branche>

git remote

Pour lier votre repo local a votre repo remote.

git remote add <nom_du_remote (origin ou autre)> <lien_du_serveur>

git push

git push

Pour push les changements sur master.

git push <nom_du_remote> master

Pour push les commits à votre dépôt distant sur de la branche specifiee.

git push <remote> <branche>

Pour pousser toutes les branches vers votre repo remote.

git push –all <remote>

git pull

git pull

Pour chercher et merger les modifications d’une branche du serveur git et l’applique a la branche sur laquelle vous vous trouvez.

git pull <branche>

git stash

git stash

Pour stocker temporairement tous les fichiers tracked modifiés.

git stash

ou

git stash save

Utile quand vous voulez mettre votre travail de cote pour revenir a la branche avant vos modifications temporairement. Par exemple, quand le commercial vient demander pourquoi ca ne marche pas, vous pouvez stash vos modifications, lui montrer que la branche fonctionne bien et puis revenir sur vos modifications quand vous avez la paix 😇

Pour restaurer les derniers fichiers stashed.

git stash pop

Pour lister tous vos stashes.

git stash list

Pour éliminer le dernier ensemble de modifications stashed.

git stash drop

Aller plus loin avec Git

Git est un outil très complet et vous pourrez continuer a l’apprendre au long de votre carriere. Il existe aussi des interfaces graphiques (GUI), github a d’ailleurs son propre client pour gerer vos commit visuellement.

Je vous recommanderais cependant de vous forcer a utiliser git en ligne de commande au debut pour bien apprendre les commandes par coeur !



Je m'appelle Thomas. Depuis ma sortie de la première promo de l'École 42, j'ai développé une app qui a été téléchargée plus de 400.000 fois. J'ai lancé près de 10 idées de startups et de nombreux autres business. Sur ce blogue, je vous apprends comment utiliser le Code pour devenir libre.

Recevez gratuitement 9 Astuces pour apprendre à coder !
Suivez la newsletter !
Désinscrivez-vous quand vous voulez
Gratuit, c'est un très bon prix
Les emails sont gratuits. Pas de spam. Vos informations sont stockées de manière sécurisée et privée. Vous pourrez vous désinscrire en un clic et à tout moment. En renseignant votre adresse email vous demandez expressément de recevoir la newsletter de tcoll.art pouvant contenir des promotion.