Concepts avancés dans Git : Explorer des fonctionnalités et des techniques puissantes

Rebasing

Le rebasage vous permet d'incorporer les modifications d'une branche à une autre en modifiant l'historique des commits. Il rejoue les commits de la branche source sur la branche cible. Cela se traduit par un historique de validation plus propre et plus linéaire.

Exemple: Supposons que vous ayez une branche de fonctionnalité appelée feature-branch et que vous souhaitiez incorporer les dernières modifications de la main branche. Vous pouvez utiliser la commande suivante :

git checkout feature-branch  
git rebase main  

Cela appliquera les commits de la main branche sur le feature-branch. Tout conflit devra être résolu au cours du processus de rebasage.

 

Stashing

Le stockage vous permet d'enregistrer vos modifications actuelles, qui ne sont pas prêtes à être validées, et de revenir temporairement à un répertoire de travail propre. Ceci est utile lorsque vous devez basculer vers une branche différente ou travailler sur une fonctionnalité différente sans valider les modifications sur lesquelles vous travaillez actuellement.

Exemple : Supposons que vous travaillez sur une branche de fonctionnalité et que vous avez apporté des modifications, mais que vous devez passer à une autre branche. Vous pouvez utiliser les commandes suivantes pour stocker vos modifications :

git stash

Après être passé à la nouvelle branche, vous pouvez ensuite appliquer les modifications cachées en utilisant :

git stash apply

 

Git Hooks

Git Hooks sont des scripts déclenchés par des événements Git spécifiques, tels que le pré-commit, le post-commit, le pré-push, etc. Ils vous permettent d'automatiser certaines actions ou d'appliquer des règles spécifiques dans votre flux de travail.

Exemple : Supposons que vous souhaitiez exécuter un linter sur votre code avant de valider. Vous pouvez créer un script hook pré-commit qui déclenche le linter et empêche le commit s'il y a des erreurs de linting.

 

Git Submodule

Git Submodule vous permettent d'inclure un autre référentiel Git en tant que sous-répertoire dans votre référentiel principal. Ceci est utile lorsque vous avez un projet qui dépend de bibliothèques ou de composants externes.

Exemple : Vous avez un projet qui nécessite une bibliothèque spécifique. Au lieu de dupliquer le code de la bibliothèque dans votre référentiel, vous pouvez l'ajouter en tant que sous-module. De cette façon, vous pouvez garder le code de la bibliothèque séparé et le mettre à jour facilement en cas de besoin.

 

Git Revert and Git Reset

Git Revert annule un commit précédent en créant un nouveau commit qui annule les modifications apportées au commit d'origine. Git Reset, d'autre part, vous permet de déplacer le pointeur de branche vers un autre commit, supprimant ainsi les commits de l'historique des commits.

Exemple : Si vous souhaitez annuler le dernier commit, vous pouvez utiliser git revert HEAD pour créer un nouveau commit qui annule les modifications apportées au dernier commit. Si vous souhaitez supprimer complètement le dernier commit, vous pouvez utiliser git reset HEAD~1 pour reculer le pointeur de branche d'un commit.

 

Ces concepts avancés de Git offrent de puissantes fonctionnalités pour gérer efficacement votre référentiel. Comprendre comment les utiliser et quand les appliquer améliorera considérablement votre flux de travail Git et votre gestion de projet.