Git rebase : qu'est-ce que c'est ? Comment s'en servir ? (2023)

J'utilise git au quotidien depuis plus de 10 ans maintenent et git-rebase est tout simplement l'une de mes fonctionnalités préférée. Pourtant, lorsque je donne des formations sur Git, je m'aperçois que cette commande est souvent mal comprise et mal utilisée. Nous allons donc étudier en détail la commande git-rebase: À quoi elle sert vraiment, et comment bien l'utiliser.

Prérequis

Ce billet présuppose que vous avez déjà une certaine connaissance desfondamentaux et du fonctionnement de Git, notamment sur le fonctionnement desbranches. Si ce n'est pas votre cas, vous pouvez commencer par lirecet autre billet qui devrait vous mettre le Git à l'étrier.

Vous êtes également sensible aux bonnes pratiques en ce qui concerne la gestionde votre historique: commits atomiques, bonne gestion des branches, etc.

Git rebase, qu'est-ce que c'est ?

Votre historique git est un peu comme un arbre, avec son tronc (la branche master), ses branches et ses sous-branches.

La commande git-rebase est comme une tronçonneuse: elle permet de couper une branche pour la regreffer à un autre endroit sur l'arbre.

Git rebase illustré

Ok, pour que ça soit plus clair, je vais vous faire un dessin. Je vais partirdu cas classique ou, depuis ma branche de développement principale(master), j'ai créé une branche discussion, parce que je doisimplémenter un système de discussion quelconque.

Voici à quoi peut ressembler l'historique en question, d'un point de vueschématique.

A---B---C---D ← master \ E---F---G ← discussion

Si je réalise une fusion classique au moyen de la commande git merge,j'obtiendrai le nouvel historique suivant :

A---B---C---D---H ← master \ / E---F---G ← discussion

Une autre solution est de transplanter ma branche discussion sur la pointede master. Je prends la branche et je la recolle plus loin. On obtientalors :

A---B---C---D ← master \ E---F---G ← discussion

Notez que rebaser discussion n'a strictement aucun effet sur master. Enrevanche, la fusion de discussion dans master est maintenant triviale(fast forward). On obtient enfin :

A---B---C---D---E---F---G ← master \ discussion

Avant de se demander à quoi ça sert, soyez certain de bien comprendre ce queça fait. On prend une branche, et on la fout autre part. Pas très compliqué,finalement, n'est-ce pas ?

À quoi sert git rebase?

Git rebase peut être utilisé dans de nombreux cas:

  • conserver un historique propre;
  • corriger des erreurs de fusion;
  • faciliter le travail collaboratif;
  • faciliter les fusions sur les branches qui nécessitent un très long développement.

Étudions quelques cas pratiques.

git rebase permet d'éviter les commits de fusion pour les branches triviales

Quand on travaille avec Git, on a tendance à créer beaucoup de petitesbranches, ce qui est une bonne chose. Par contre, fusionner des branches créédes commits de fusion, comme dans notre exemple précédent.

Si vous créez beaucoup de petites branches, vous allez obtenir beaucoup decommits de fusion. Dans la mesure ou ces commits n'apportent pas d'informationutile, ils polluent votre historique.

En rebasant (vous devrez me pardonner les anglicismes barbares) vos branchesavant de les fusionner, vous obtiendrez un historique tout plat et bien plusagréable à parcourir. Prenons un exemple.

 F---G ← bug2 /A---B---E---H---I ← master \ C---D ← bug1

En utilisant un rebase avant chaque fusion, on obtient l'historiquesuivant :

A---B---E---H---I---C---D---F---G ← master

Les commandes pour parvenir à ce résultat sont les suivantes, explicationsjuste après.

  1. git rebase master bug1
  2. git checkout master
  3. git merge bug1
  4. git branch -d bug1
  5. git rebase master bug2
  6. git checkout master
  7. git merge bug2
  8. git branch -d bug2

Et le détail des commandes.

  1. Transplante bug1 sur l'actuelle branche master. Si on est déjà entrain de bosser sur bug1 on peut se contenter de taper git rebasemaster
  2. Switche sur master
  3. Fusionne bug1 dans master
  4. Supprime la branche bug1 devenue inutile
  5. Transplante bug2 sur la branche master
  6. Switche sur master
  7. Fusionne bug2 dans master
  8. Supprime bug2 devenue inutile.

Et voilà un bel historique bien propre, exempt de commits de fusion inutiles.

Ça paraît laborieux mais avec l'habitude, ça se fait tout seul et c'est mêmeplutôt amusant (je sais, un rien m'amuse).

git rebase permet de fusionner les branches en série

Prenons exactement le même exemple que précédemment, sauf que cette fois, nousne fusionnons pas des petites branches triviales mais de vraiesfonctionnalités.

 F---G ← newsletter /A---B---E---H---I ← master \ C---D ← password_reset

Un historique plat, c'est bien, mais on perd de l'information. Plus moyen desavoir en un coup d'œil que telle liste de commits a été réalisée sur unebranche spécifique.

Pour pallier à ce problème, on va utilise une option de merge : git merge --no-ff(pour « no fast forward »).

D'abord, les commandes.

git rebase master password_resetgit checkout mastergit merge password_reset --no-ffgit branch -d password_resetgit rebase master newslettergit checkout mastergit merge newsletter --no-ffgit branch -d newsletter

On obtient alors l'historique suivant, bien plus clair. De plus, les commits« J » et « K » afficheront un message « branch machin was merged into master »,ce qui fait que, même si les branches ont effectivement été supprimées,l'historique conserve une trace de leur existence.

A---B---E---H---I-------J-------K ← master \ / \ / C---D F---G

Voici une capture d'un vrai projet, pour que vous puissiez vous extasier sur labeauté de la chose.

C'est-y pas beau ? Pour un peu, je me ferais tatouer ça sur le corps.

git rebase permet d'éviter les commits de fusion de git pull

Lorsque vous tapez git pull pour mettre à jour votre dépôt avec lesderniers commits présents sur le serveur, Git va réaliser un merge pourfusionner vos modifications et celles que vous venez de récupérer.

Sur le serveur.

A---B---C---D---E ← master

Sur votre machine.

 origin/master /A---B---C---F ← master

Après un git pull.

 D---E ← origin/master / \A---B---C---F---G ← master

Vous pourrez alors envoyer votre travail sur le serveur avec un git push.

Imaginez maintenant dix personnes qui travaillent sur la même branche (c'esttrès mal) et qui pushent et pullent toutes les cinq minutes. Vous imaginez lagueule de l'historique ?

Pour éviter ce problème, on va utiliser l'option git pull --rebase, quiproduira le résultat suivant.

 origin/master /A---B---C---D---E---F ← master

Et hop ! Encore une fois, un bel historique nickel. Merci Git !

Réparer un mauvais historique grâce à git rebase --onto

Scénario : j'ai créé une branche newsletter pour travailler sur lafonctionnalité correspondante. J'ai également créé une branche bug_urgentpour corriger un bug qui doit être fixé urgemment, comme son nom l'indique.

Sauf que, au moment de fusionner ma branche bug_urgent, horreur ! malheur !je m'aperçois que je n'ai pas créé ma branche au bon endroit. Mon historiqueressemble à ça.

A---B---H---I---J ← master \ C---D---G ← newsletter \ E---F ← bug_urgent

Catastrophe ! Ma branche newsletter est un travail en cours, maisbug_urgent doit absolument être fusionnée dans master, le commercial aune démo dans 5 minutes. Comment faire ?!

Git rebase à la rescousse ! Nous allons simplement transplanter bug_urgentsur master, et le tour est joué.

git rebase newsletter bug_urgent --onto mastergit checkout mastergit merge bug_urgent
A---B---H---I---J---E---F ← master \ C---D---G ← newsletter

Bingo ! Alors, merci qui ?

Vous noterez que l'appel de la commande rebase est ici un poil pluscompliqué. Si nous nous étions contenté de la syntaxe habituelle git rebasemaster, nous aurions transplanté tous les commits de la branchebug_urgent en remontant jusqu'à master, c'est à dire les commits E etF, mais aussi C et D, ce qui n'est clairement pas le but.

La commande git rebase newsletter bug_urgent --onto master signifie« arrache la branche qui part de newsletter jusqu'à bug_urgent, et fousla sur master », ou encore « transplante sur master tous les commitsqui sont sur bug_urgent:postlink: mais pas sur newsletter ». Pfiou !

Réparer un mauvais historique, bis

Autre exemple d'historique généré un soir de bourre.

A---B---H---I ← master \ C---D---G ← bug1 \ E---F ← bug2

Or, il se trouve que les branches bug1 et bug2 sont totalementindépendantes. L'une sera peut-être fusionnée avant l'autre, ou abandonnée, onne sait pas. Nous allons donc réparer cette bévue prestement.

git rebase bug1 bug2 --onto B
 E---F ← bug2 /A---B---H---I ← production \ C---D---G ← bug1

Et voilà ! Notez qu'on peut transplanter à n'importe quel endroit, pasforcément sur une branche (ce qui est normal, puisqu'une branche n'est riend'autre qu'une étiquette pointant sur un commit).

git rebase permet de faciliter l'intégration de longues branches

Scénario : je travaille sur une fonctionnalité qui nécessite plusieurs semainesde dev. J'ai donc une branche qui va évoluer pendant un loooooooooooong momentavant d'être fusionnée.

A---B---H---I--- … ---J---E---F ← master \ C---D---G--- … ---H---I ← newsletter

Si les branches divergent suffisamment, il est probable que le moment dela fusion va être assez pénible, avec des conflits à résoudre en pagaille. Unemauvaise journée en perspective.

Sauf si, malin, j'ai rebasé ma branche tous les matins en buvant mon café. Jecorrige ainsi les conflits au fil de l'eau. Au bout de trois mois, voici monhistorique :

A---B---H---I--- … ---J---E---F ← master \ C---D---G--- … ---H---I ← newsletter

J'ai beau avoir trois mois de dev dans les pattes, la fusion est triviale et neprends pas plus d'un quart de secondes. Merci git rebase.

Réécrire l'historique avec git rebase interactif

Allez, on va arrêter de rigoler et sortir la grosse artillerie. Parce que gitrebase dispose d'une petite option sympathique : l'option interactive. Quand jelui passe cette option, l'éditeur s'ouvre et je peux éditer un fichier enprécisant ce que je veux faire de chaque commit en moment de son application.Exemple.

Voici un exemple d'historique standard (les commits les plus récents en haut).

* 4baf2db - Write tests for discussion* 0fadd04 - Implement discussion* 8be3c7e - Write tests for newsletter* bce2851 - Implement newsletter* 6477e21 - …

Tout va bien dans le meilleur des mondes. Quand tout à coup ! on m'annoncequ'un audit va être réalisé pour vérifier si les employé·e·s respectent bien lapolitique qualité de l'entreprise. Cette politique stipule que je suis censécommiter les tests d'une feature avant de commiter le code correspondant.

Et mince ! adieu ma prime ! Git rebase interactif à la rescousse.

git rebase -i HEAD~4

Cette commande signifie « arrache les quatre derniers commits et transplanteles au même endroit ». En théorie, c'est une opération nulle SAUF qu'on va lefaire de manière interactive.

Immédiatement après avoir tapé la commande, l'éditeur s'ouvre et affichequelque chose comme ça:

pick 4baf2db Write tests for discussionpick 0fadd04 Implement discussionpick 8be3c7e Write tests for newsletterpick bce2851 Implement newsletter

Les modifications que je vais réaliser dans ce fichier vont influer sur lamanière dont mon rebase va se passer. En l'occurence, je vais effectuer cettesimple modification.

pick 0fadd04 Implement discussionpick 4baf2db Write tests for discussionpick bce2851 Implement newsletterpick 8be3c7e Write tests for newsletter

J'ai simplement modifié l'ordre des lignes. J'enregistre et quitte l'éditeur.Et magie ! Mes commits ont été réappliqués dans l'ordre indiqué. À moi la prime! Notez que de nombreuses possibilités s'offrent à moi. J'aurais pu découperun commit en plusieurs ou au contraire en rassembler plusieurs en un seul ;ignorer des commits ; récupérer des commits tels quels mais modifier le message; etc.

Pièges à éviter

WARNING ATTENTION ACHTUNG

Si vous voulez vous essayer au git rebase, lisez bien attentivement lesparagraphes qui suivent. À peu près aucune commande de l'environnement Git n'aun plus grand pouvoir de nuisance que git rebase.

Parce qu'un rebase réécrit votre historique, et que ce n'est pas toujours uneopération triviale. Si vous foirez votre coup, vous avez les moyens defranchement flinguer votre historique — rien d'irrécupérable, mais quand mêmede quoi passer un mauvais moment.

Git rebase ne déplace pas vraiment des commits

Quand je vous ai dit que rebase déplaçait des commits, j'ai menti (c'était pourvotre bien). Parce que si vous avez lu mon très détaillé tutoriel sur git, vous savez qu'il est strictement impossible demodifier un commit existant, pour la pure et simple raison qu'un commit estindexé par le hash de son contenu.

Reprenons la métaphore de l'arbre, toujours avec ses branches. Scannez unebranche et utilisez une imprimante 3d pour en effectuer une copie la plusfidèle possible. Collez cette copie quelque part sur le tronc. Utilisez unecape d'invisibilité pour masquer la branche d'origine. Voilà, en vrai, c'est çagit rebase.

Ce que fait git rebase, c'est qu'il copie tous les commits transplantés etles réapplique un par un à l'endroit indiqués. Mais il s'agit bel et bien denouveaux commits, avec des identifiants différents, même si le contenu est lemême.

Reprenons notre exemple de tout à l'heure.

A---B---C---D ← master \ E---F---G ← discussion

Si je rebase discussion sur master, ce qu'il se passe réellementressemble plutôt à ça :

 E'---F'---G' ← discussion /A---B---C---D ← master \ E---F---G

Ainsi, les commits de l'ancienne branche discussion existent toujours, mêmes'ils sont invisibles car pointés par aucune branche. Les commits de lanouvelle branche discussion sont bels et biens différents.

L'historique partagé jamais tu ne rebaseras

Tant que vous rebasez vos petites branches en local, tout va bien. Maisattention, si vous rebasez une branche qui se trouve déjà sur le serveur, c'estla catastrophe. Vous allez pourrir l'historique de tous vos coworkeurs, quis'empresseront de vous couvrir de goudron et de plume avant d'essayer de vousvendre aux abattoirs d'un KFC. Illustration.

Sur le serveur.

A---B---C---D---E ← master \ F---G---H ← feature

Sur votre machine.

A---B---C---D---E ← master

Vous rebasez les 4 derniers commits de master (comble de l'horreur).

A---B'---C'---D'---E' ← master

Vous poushez. Git affiche un message d'erreur, mais vous utilisez l'option« force » pour pousher quand même. Ni Dieu Ni Maître !

Sur le serveur.

 B'---C'---D'---E' ← master /A---B---C---D---E \ F---G---H ← feature

Wat ?! Imaginez le résultat quand vos collègues essayeront de récupérer lesdonnées du serveur. Ça ne va pas être joli et très franchement, je voussouhaite bon courage.

Notez donc bien soigneusement cette règle d'or de l'utilisation de rebase :

L'historique partagé jamais tu ne modifieras, sinon l'ire de ton équipetu subiras.

Essayer

Pour ceux qui veulent s'amuser, voici le dépôt Git que j'utilise pour mesformations.

git clone https://github.com/thibault/iwantyoursocks.git

Vous pouvez par exemple essayer de rebaser puis fusionner les branchescolors et material sur master.

Conclusion

Et voilà. Si vous êtes déjà un aficionado de Git, j'espère vous avoircommuniqué un peu de mon enthousiasme pour git rebase, et si vous êtesnovice, j'espère vous avoir mis le pied à l'étrier. Sur ce, je vous laisse,j'ai un historique à réécrire.

FAQs

Comment utiliser git rebase ? ›

Au niveau du contenu, le rebase consiste à changer la base de votre branche d'un commit vers un autre, donnant l'illusion que vous avez créé votre branche à partir d'un commit différent. En interne, Git réalise cette tâche en créant de nouveaux commits et en les appliquant à la base spécifiée.

Quand faire un Rebase ? ›

Le rebase, permet d'avoir un historique linéaire. on l'utilise quand on a pas besoins de savoir que les deux branches on été fait en parallèles. C'est le cas par exemple quand vous allez récupérer des modifications du dépôt distant et que vous avez des commit en local.

Quelle est la différence entre merge et Rebase ? ›

Le merge est une solution sûre, qui préserve tout l'historique de votre dépôt, tandis que le rebase génère un historique linéaire en déplaçant votre branche de fonctionnalité sur la pointe de la branche principale ( main ).

Comment annuler un Rebase ? ›

Vous pouvez résoudre les conflits , puis exécuter git rebase --continue , ou exécuter git rebase --abort pour annuler le rebase et revenir à l'état de pré-rebase.

Comment fusionner deux branches git ? ›

Pour fusionner nos deux branches, on va se placer sur master avec une commande git checkout puis taper une commande git merge avec le nom de la branche qu'on souhaite fusionner avec master . Dans ce cas, “fusionner” nos deux branches revient finalement à faire avancer master au niveau du commit pointé par test .

C'est quoi Fast Forward git ? ›

Un Fast-forward, est utilisé quand il existe un chemin simple pour relier notre branche et la branche cible. En effet, si il n'y a pas eu de commit entre temps la fusion consiste à ajouter les commit de la branche cible à la suite du dernier commit de la branche courante.

C'est quoi un merge git ? ›

Dans Git, le merge permet de reconstituer un historique forké. La commande git merge vous permet de sélectionner les lignes de développement indépendantes créées avec git branch et de les intégrer à une seule branche.

Comment supprimer une branche dans git ? ›

Supprimez une branche locale à l'aide de la git branch -d commande lorsqu'elle est extraite dans une autre branche. La suppression d'une branche distante nécessite l'utilisation de la git push commande à l'aide de l'option --delete .

Quelle commande permet d'ajouter les commits d'une branche après ceux d'une autre branche ? ›

Cherry-pick. La commande cherry-pick permet d'appliquer n'importe quel commit depuis une branche vers une autre.

C'est quoi un Cherry-Pick ? ›

git cherry-pick est une commande puissante qui permet de choisir des commits Git arbitraires par référence et de les ajouter au HEAD actuel. Elle correspond au fait de sélectionner un commit d'une branche et de l'appliquer à une autre. La commande git cherry-pick peut être utile pour annuler des changements.

Comment abandonner un merge ? ›

Abandonner une fusion

Vous ne vous attendiez peut-être pas à rencontrer un conflit et vous ne souhaitez pas encore le gérer, alors vous pouvez simplement faire marche arrière avec git merge --abort . L'option git merge --abort essaie de vous ramener à l'état précédent la fusion.

Comment récupérer un commit d'une autre branche ? ›

Récupération des commits

Une fois le commit recherché trouvé, il est possible de l'utiliser comme n'importe quel autre commit. On peut donc créer une nouvelle branche pointant sur ce commit ( git branch <new-branch> <lost-commit-hash> ), l'appliquer sur la branche courante ( git cherry-pick <lost-commit-hash> ), etc.

Quelle est la différence entre git Revert et git reset ? ›

Gardez à l'esprit que git revert sert à annuler des changements commités, tandis que git reset HEAD permet d'annuler des changements non commités.

Quelle commande permet d'annuler un rebasage en cours ? ›

Vous pouvez exécuter git rebase --abort pour annuler complètement le rebasage. Git vous renvoie à l'état de votre branche tel qu'il était avant l'appel de git rebase .

Quelle commande permet de réordonner ses commits ? ›

Un peu de préparation

La commande qui sert de fondation à la réorganisation de l'historique de code est la commande git rebase <master> <feature>. Cette commande va rechercher tous les commits qui sont des ancêtres de feature mais pas de master et les appliquer un à un sur master.

Pourquoi créer des branches git ? ›

Vous créez des branches pour isoler vos changements de code, que vous testez avant de les fusionner dans la branche principale (voir plus loin). La branche principale (main) n'a rien de spécial. C'est la première branche créée lorsque vous initialisez un référentiel Git à l'aide de la commande git init.

Comment faire un git clone ? ›

La commande git clone est principalement utilisée pour indiquer un dépôt existant et cloner ou copier celui-ci dans un nouveau répertoire et un autre emplacement. Le dépôt d'origine peut être situé sur le système de fichiers local ou sur les protocoles pris en charge accessibles depuis la machine distante.

Comment modifier le nom d'une branche git ? ›

Dans la ligne de commande, sélectionnez la Branche Git que vous souhaitez renommer. La commande pour cela est « git checkout alter-name ». Effectuez à présent le local Git Branch rename. La commande ad hoc est : « git branch -m new-name ».

Pourquoi utiliser git stash ? ›

Le stashing est pratique si vous avez besoin de changer rapidement de contexte et de travailler sur autre chose, mais que vous êtes en plein dans un changement de code et que n'êtes pas tout à fait prêt à commiter.

Quand utiliser git stash ? ›

Utilisez git stash lorsque vous voulez enregistrer l'état actuel du répertoire de travail et de l'index, mais que vous voulez revenir à un répertoire de travail propre. La commande enregistre vos modifications locales et rétablit le répertoire de travail pour qu'il corresponde au commit HEAD .

Qu'est-ce qu'un branch ? ›

Nom commun. (Botanique) Branche (d'un arbre), rameau. Section, branche.

Quelle est la différence entre git et GitHub ? ›

Git est un logiciel local qui permet aux développeurs de sauvegarder instantanément leurs projets au fil du temps. GitHub est une plateforme web qui intègre les fonctionnalités de contrôle de version de Git afin de pouvoir les utiliser en collaboration.

Pourquoi git s'appelle git ? ›

Origine du nom

Le magazine PC World nous apprend que « quand on lui a demandé pourquoi il avait appelé son logiciel “git”, qui est à peu près l'équivalent de “connard” en argot britannique, Linus Torvalds a répondu “je ne suis qu'un sale égocentrique, donc j'appelle tous mes projets d'après ma propre personne.

Quelle est la différence entre git et GitHub Gitlab ? ›

git est un logiciel VCS local qui permet aux développeurs de sauvegarder des instantanés de leurs projets au fil du temps. Il est généralement mieux adapté à un usage individuel. GitHub est une plateforme web qui intègre les fonctionnalités de contrôle de version de git afin de pouvoir les utiliser en collaboration.

Comment savoir sur quelle branche on est git ? ›

Utilisation : branches existantes

En supposant que le dépôt dans lequel vous travaillez contient des branches préexistantes, vous pouvez basculer entre ces branches avec la commande git checkout . Pour déterminer quelles branches sont disponibles et quel est le nom de la branche en cours, exécutez git branch .

Comment savoir l'origine d'une branche git ? ›

Seul un humain peut répondre à cette question, généralement le team lead. Le dev qui a créé la branche est également supposé savoir depuis laquelle il a branché. Au pire git branch --contains <commit> permet de lister les branches qui référencent ce commit.

Comment in git ignore ? ›

Pour indiquer à Git qu'il doit ignorer certains fichiers, il est nécessaire de créer et maintenir un fichier nommé ". gitignore" dans le répertoire du projet. Bien souvent, ce fichier sert à indiquer à Git qu'il ne doit pas tenir compte des fichiers avec l'extension ".

Pourquoi git push ? ›

La commande git push est utilisée pour charger le contenu d'un dépôt local vers un dépôt distant. Le push vous permet de transférer les commits de votre dépôt local vers un dépôt distant.

C'est quoi git status ? ›

La commande git status affiche l'état du répertoire de travail et de la zone de staging. Elle vous permet de voir les changements qui ont été stagés, ceux qui ne l'ont pas été, ainsi que les fichiers qui sont trackés par Git.

Comment résoudre les conflits git ? ›

Résoudre les conflits de contenu de fichier
  1. Ouvrez un fichier dans n'importe quel éditeur pour afficher et résoudre le texte en conflit. ...
  2. Modifiez le fichier pour résoudre le texte en conflit. ...
  3. Exécutez git add <filename> pour mettre en scène le fichier une fois que vous avez résolu tout texte en conflit.
Sep 27, 2022

Comment régler les conflits git ? ›

Pour résoudre ce conflit, il va falloir:
  1. ouvrir le fichier README.md dans son éditeur de code,
  2. constater comment git représente le conflit, et la source de chaque version,
  3. éditer le fichier pour ne conserver que la version finale souhaitée,
  4. puis créer un commit.

Qu'est-ce qu'un conflit de fusion dans git ? ›

Les conflits de fusion se produisent quand vous fusionnez des branches qui ont des commits concurrents et que Git a besoin de votre aide pour déterminer les modifications à incorporer dans la fusion finale. Git peut souvent résoudre les différences entre les branches et les fusionner automatiquement.

C'est quoi Revert commit ? ›

Revert permet d'inverser un commit. Cette commande va défaire ce qui avait été fait au moment du <commit> en créant un nouveau commit. Cela n'altère pas l'historique mais va ajouter un nouveau commit d'inversion (les lignes ajoutées seront supprimées, les fichiers supprimés seront recréés...).

Comment faire un bon commit ? ›

Les règles du bon commit
  1. Le sujet doit être limité à 50 caractères.
  2. La première lettre prend une majuscule.
  3. Ne pas terminer le sujet par un point.
  4. Utiliser une même forme verbale pour tous les commits.
  5. Le message doit expliquer le pourquoi.

Comment corriger un commit ? ›

Sur la ligne de commande, accédez au dépôt qui contient le commit que vous voulez corriger. Tapez git commit --amend , puis appuyez sur Entrée. Dans votre éditeur de texte, modifiez le message de commit et enregistrez le commit.

Comment réinitialiser un projet git ? ›

La commande git reset HEAD~2 recule la branche courante de deux commits, ce qui supprime les deux instantanés que nous venons de créer à partir de l'historique du projet. N'oubliez pas que ce genre de réinitialisation ne devrait être utilisé que sur les commits non publiés.

Qui utilise git ? ›

Git est le logiciel qui contrôle la version des applications que nous créons. Il est utilisé par les développeurs solos, les grandes entreprises et même Linux, le plus grand projet open source au monde.

Comment annuler un pull git ? ›

Dans Git 1.7.0 ou une version ultérieure, pour annuler une fusion conflictuelle, utilisez git reset --merge .

Pourquoi faire un rebasage ? ›

Le rebasage dentaire est envisagé si la prothèse dentaire n'est plus fixée comme il faut à la gencive de façon naturelle. Comme expliqué dans l'introduction, ce phénomène est normal compte tenu des changements qui se produisent dans votre bouche. C'est plus précisément la gencive qui, avec le temps, se rétracte.

Comment annuler les modification avec git ? ›

La commande git clean est un utilitaire pratique pour annuler des changements dans le répertoire de travail. En outre, git reset peut être appelée avec l'option --mixed ou --hard . Elle applique alors un reset sur le répertoire de travail.

Comment créer une nouvelle branche et y basculer directement ? ›

Pour créer une nouvelle branche, on utilise la commande git branch nom-de-la-branche . Cette syntaxe va créer un nouveau pointeur vers le dernier commit effectué (le commit courant).

Comment faire un push sur git ? ›

Pour intégrer la branche au repository distant, il faut utiliser la commande git push. L'option -u indique à git de créer toutes les informations nécessaires pour rendre la branche traçable. Il faut ensuite spécifier le nom du repository distant (par défaut, il se nomme origin) et le nom de la branche.

Comment utiliser commande git ? ›

Git checkout
  1. La commande git checkout peut être utilisée pour créer des branches ou pour basculer entre elles. Par exemple nous allons créer une branche: command git checkout -b <nom-branche>
  2. Pour passer simplement d'une branche à une autre, utilisez: git checkout <nom-branche>

Quelle commande git permet de gérer sa configuration ? ›

La commande git config est une fonction pratique utilisée pour définir des valeurs de configuration Git au niveau global ou local d'un projet. Ces niveaux de configuration correspondent aux fichiers texte . gitconfig . L'exécution de git config modifiera un fichier texte de configuration.

Comment utiliser la commande git ? ›

Git checkout
  1. La commande git checkout peut être utilisée pour créer des branches ou pour basculer entre elles. Par exemple nous allons créer une branche: command git checkout -b <nom-branche>
  2. Pour passer simplement d'une branche à une autre, utilisez: git checkout <nom-branche>

Quelle commande git modifié le dépôt distant ? ›

Pousser des modifications vers un dépôt distant

On utilise pour cela la commande git push [nom-distant] [nom-de-branche] . Si on souhaite par exemple pousser les modifications faites sur notre branche master vers le serveur origin, on écrira git push origin master .

Comment utiliser git remote add ? ›

Commandes git remote

Ajoute un enregistrement à ./. git/config pour le dépôt distant nommé <name> se trouvant à l'URL <url>. Accepte une option -f qui va immédiatement lancer une commande git fetch une fois l'enregistrement de dépôt distant créé.

C'est quoi un commit dans git ? ›

Les commits constituent les piliers d'une chronologie de projet Git. Les commits peuvent être considérés comme des instantanés ou des étapes importantes dans la chronologie d'un projet Git. Ils sont créés grâce à la commande git commit pour capturer l'état d'un projet à un point dans le temps.

C'est quoi git pull ? ›

La commande git pull est utilisée pour faire un fetch du contenu d'un dépôt distant et pour le télécharger, puis pour mettre à jour immédiatement le dépôt local qui correspond à ce contenu. Faire un merge des changements en amont dans votre dépôt local est une tâche courante dans les workflows Git.

Comment faire un push ? ›

Il faut placer les mains directement en dessous des épaules. Une erreur commune est de placer les mains trop larges. Les mains doivent donc rester relativement proches des épaules. Ensuite, tu peux te redresser en position push-up sur les genoux.

Quand faire un commit git ? ›

Lorsque vous êtes prêt à enregistrer une copie de l'état actuel du projet, vous stagez les changements grâce à git add . Quand vous êtes satisfait de l'instantané stagé, vous le commitez dans l'historique du projet grâce à git commit .

Comment lier un dépôt local et un dépôt distant ? ›

git clone permet de copier en local un dépôt distant. git remote add permet de lier un dépôt à un "nom court", pour une plus grande facilité d'utilisation. git pull permet de dupliquer un dépôt GitHub en local. Une Pull Request permet de demander à fusionner votre code sur la branche principale.

Quelle est la différence entre Forking et Cloning ? ›

Copier un dépôt : clone vs fork

Un fork est une copie d'un dépôt distant qui nous permet d'effectuer des modifications sans affecter le projet original. La différence entre un fork et un clone est que lorsqu'on fork une connexion existe entre notre fork (notre copie) et le projet original.

Pourquoi on utilise GitHub ? ›

Dans les projets open source, GitHub permet aux utilisateurs de créer d'autres projets open source en tant que nouveaux repository et de les gérer eux-mêmes. Les développeurs l'utilisent pour soumettre des correctifs et ajouter leur propre code à d'autres projets.

Pourquoi utiliser git et GitHub ? ›

Git permet de faciliter la collaboration en permettant de revenir sur les anciennes versions. La plateforme GitHub va contenir quant à elle les dépôts dans le cloud afin que les développeurs arrivent à travailler sur un même projet et distinguent en temps réel les modifications apportées par les autres développeurs.

References

Top Articles
Latest Posts
Article information

Author: Kelle Weber

Last Updated: 21/12/2023

Views: 6137

Rating: 4.2 / 5 (53 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Kelle Weber

Birthday: 2000-08-05

Address: 6796 Juan Square, Markfort, MN 58988

Phone: +8215934114615

Job: Hospitality Director

Hobby: tabletop games, Foreign language learning, Leather crafting, Horseback riding, Swimming, Knapping, Handball

Introduction: My name is Kelle Weber, I am a magnificent, enchanting, fair, joyous, light, determined, joyous person who loves writing and wants to share my knowledge and understanding with you.