Git avancé : Rebase, Cherry-pick, Submodules
Git avancé : Rebase, Cherry-pick, Submodules
Chapitre 2/36 : Git avancé - Rebase, Cherry-pick, Submodules
-
🔄Rebase : Réécriture de l'historique pour unifier et nettoyer les commits
- 🧩Permet de repositionner une branche sur une autre base, souvent pour intégrer les dernières modifications d’une branche principale avant un merge.
- 🔧
git rebasepeut être utilisé en mode interactif (git rebase -i) pour modifier, fusionner, réordonner ou supprimer des commits, ce qui améliore la lisibilité de l’historique. - ⚠️Attention : le rebase modifie l’historique. Ne jamais rebaser des commits déjà poussés et partagés publiquement sauf si vous maîtrisez les conséquences.
- 🛠En cas de conflits lors du rebase, Git suspend le processus pour résoudre manuellement les conflits avant de poursuivre avec
git rebase --continue. - 🎯Utilisé pour rendre l’historique linéaire, ce qui facilite la lecture et évite des merges "bruyants".
-
🍒Cherry-pick : Sélectionner et appliquer un commit spécifique sur une autre branche
- 📥
git cherry-pick <commit-hash>permet d’extraire un commit précis d’une branche et de l’appliquer sur la branche courante, utile pour porter des corrections isolées. - 📌Gardez en tête que cherry-pick duplique les modifications, créant un nouveau commit avec un identifiant différent, ce qui peut compliquer la gestion des merges ultérieurs.
- 🔄Permet de corriger rapidement des bugs sur plusieurs branches sans fusionner toutes les modifications présentes dans la branche source.
- ⚔️En cas de conflit, git suspend l’opération et nécessite une résolution manuelle avant de continuer avec
git cherry-pick --continueou d’abandonner avecgit cherry-pick --abort. - 🧠Utilisation avancée : on peut cherry-pick plusieurs commits à la suite (ex:
git cherry-pick A..B), mais attention à l’ordre et à la cohérence des changements.
- 📥
-
📦Submodules : Intégrer des référentiels Git externes dans un projet parent
- 🔗Un submodule est un dépôt Git imbriqué dans un autre, référencé via un commit spécifique, ce qui permet de gérer des dépendances ou des composants tiers sans fusionner leur historique.
- ⚙️
git submodule add <url> <path>ajoute un dépôt externe dans un chemin défini et crée une entrée dans le fichier.gitmodules. - 🚦Les submodules exigent des commandes spécifiques : pour initialiser et mettre à jour on utilise
git submodule update --init --recursive, essentiel après un clone. - 🎯Attention à la gestion des versions : chaque submodule est lié à un commit précis, il faut donc souvent mettre à jour manuellement le commit référencé pour bénéficier des dernières modifications.
- 🤹♂️Pour modifier un submodule, on entre dans son dossier, on travaille normalement (commit, push), puis on revient dans le dépôt parent pour committer la nouvelle référence.
- 🔍Les submodules peuvent complexifier les workflows : il est important de documenter clairement leur usage et former les équipes à leur manipulation pour éviter les erreurs de synchronisation.
- 💡Alternatives aux submodules comme Git subtree existent, mais submodules restent pertinents pour isoler strictement des projets indépendants tout en les intégrant.
Évaluation
0
0
Il n'y a aucune réaction pour le moment.
×
Votre IT est-il vraiment sécurisé ?
Chaque mois, nos experts vous décryptent :
Menaces ciblant les PME françaises
Solutions concrètes à appliquer
Économies sur votre parc IT
Rejoignez 500+ dirigeants déjà informés.
Merci pour votre inscription !
Audits IT gratuits ·
Cybersécurité certifiée · Cloud
sécurisé