Git & Version Control

simulateur GitComprendre le graphe avant la commande

Choisissez un exemple et observez le résultat sans ouvrir ni modifier de dépôt.

simulateur Git

Graphe des commits exemple

AA: Base communeBB: Mise à jour mainmainCC: Changement featureDD: Test featurefeature

A–D et les primes sont des identifiants pédagogiques, pas des hash Git.

Aperçu de l’historique

Choisissez un exemple et une opération pour voir le résultat ici.

Seul le graphe pédagogique fixe est traité dans ce navigateur; aucun dépôt n’est lu ni contacté.

Options

Branche cible: main · Branche source: feature

Ctrl/Cmd + Entrée prévisualise l’opération choisie.

Choisissez une opération à prévisualiser.

Ce graphe modélise des fichiers fixes d’une ligne, pas la stratégie de fusion de votre dépôt.

Un simulateur Git rend visible ce qui arrive aux pointeurs quand main et feature se séparent après un ancêtre commun. Le graphe des commits sert ici de support pour comparer trois opérations souvent confondues.

Passez à l’exemple d’avance rapide ou à celui où une même ligne change différemment. Les lettres A à D sont des repères pédagogiques, jamais les identifiants de vos vrais commits.

Pourquoi utiliser ce simulateur Git ?

Comparer trois formes depuis un même départ

Le simulateur Git conserve les anciens nœuds lors d’une fusion, puis dessine de nouveaux nœuds pour le rebase et le cherry-pick. On peut visualiser l’historique Git et voir quel pointeur bouge réellement dans l’exemple.

Deux branches issues d’un commit commun sont reliées par un nouveau nœud de fusion à deux parents.

Un conflit fondé sur des valeurs affichées

L’exemple montre la version de base, la version actuelle et la version entrante d’une ligne de app.js. Il explique ce conflit de fusion pédagogique sans promettre de détecter ceux de votre dépôt.

Une même ligne de fichier porte deux valeurs différentes sur les branches et un avertissement interrompt l’aperçu.

Trois repères pour lire le résultat

01

Tester l’avance rapide

Si main est un ancêtre de feature, la fusion déplace seulement le pointeur main. Le graphe n’ajoute pas de commit de fusion à deux parents dans ce cas.

02

Suivre les copies de commits

Le rebase rejoue C puis D sous les noms symboliques C′ et D′. Le cherry-pick ne copie que C ou D vers main et laisse la branche feature à son ancien emplacement.

03

Rafraîchir avant d’exporter

Changer d’exemple ou d’opération périme aussitôt l’ancien aperçu et désactive copie et téléchargement. Ctrl/Cmd + Entrée relance le calcul; vérifiez les noms et le substitut de hash du brouillon.

Ce que chaque opération modifie

Fusion ou rebase, deux ascendances

Une fusion divergente crée un commit à deux parents; un rebase recrée les commits feature sur une nouvelle base. L’exemple d’avance rapide ne fait que déplacer main.

Sélection limitée pour cherry-pick

Le cherry-pick applique un seul commit choisi et ne transporte pas toute la branche. Les apostrophes des nouveaux nœuds représentent des copies, pas de véritables SHA.

Conflit lié à un instantané connu

Le conflit est déduit d’un fichier d’exemple réduit à une ligne. Le modèle ne reproduit ni la fusion de texte de Git ni la détection de renommage et ne résout aucun fichier.

Les limites de ce modèle

Aucun accès au dépôt
Le simulateur Git ne lit pas git log, les dossiers locaux ou une URL distante et n’exécute pas Git. Il ignore l’index, les changements non validés et les règles du serveur.
Aucun verdict de sécurité
Un graphe pédagogique ne peut pas décider si réécrire une branche partagée est acceptable. Les noms main et feature du brouillon sont des exemples à remplacer après examen du vrai dépôt.
Un conflit de ligne, pas une prédiction
La scène app.js compare trois valeurs fixes. Les conflits réels dépendent des fichiers, des stratégies et des options de Git; la résolution et --continue restent à faire dans votre environnement.
Pas de terminal Git libre
Le modèle ne prend pas en charge push, pull, stash, squash, revert, commandes arbitraires ou rebase interactif. Ces actions demandent des états absents du graphe fixe.

Questions sur le simulateur Git

Rebase ou merge pour intégrer une branche, et pourquoi ?

La fusion garde l’ascendance des deux branches; le rebase recrée les commits feature sur une nouvelle base. Le simulateur Git montre ces formes, mais une branche déjà partagée peut rendre la réécriture inadaptée.

Quelle stratégie de merge de PR choisir : rebase, squash ou merge ?

Une fusion préserve la branche, le rebase produit une histoire linéaire et squash réunit plusieurs changements en un commit. Cette page ne simule pas squash ni les réglages de la plateforme; suivez la politique du projet.

Comment résoudre les conflits après un rebase Git ?

Le rebase s’arrête au commit dont le changement ne s’applique pas proprement. Il faut examiner et corriger les vrais fichiers, puis poursuivre dans Git. La page indique seulement où son exemple d’une ligne s’arrête.

Comment annuler une fusion Git ?

La marche à suivre dépend de l’état de la fusion et du fait qu’elle ait été partagée. Ce simulateur n’effectue aucune fusion réelle et ne propose ni reset ni revert; inspectez votre dépôt avant une action de retour.

Comment récupérer les modifications d’une autre branche sans se perdre dans les commandes ?

Comparez la fusion complète à la copie d’un seul commit avec cherry-pick. Le brouillon illustre la syntaxe, mais vous devez vérifier le commit voulu, la branche cible et l’état de travail réels.

La syntaxe diffère-t-elle de la documentation de votre appareil ?

Essayer le simulateur Git

Comparez trois opérations sur le même graphe, examinez le conflit fixe, puis remplacez tous les repères du brouillon par ceux de votre dépôt.