Git Rebase et Branch Commutation

Rebase

Rebase est le processus de modification de l'historique des commits d'une branche en appliquant les commits d'une autre branche. Au lieu d'utiliser merge pour combiner les modifications, rebase vous permet de créer insert de nouveaux commits dans l'historique des commits de la branche actuelle sans créer de commits de fusion.

Par exemple, supposons que vous ayez deux branches: feature-branch et main. Vous travaillez sur feature-branch et souhaitez appliquer les derniers commits main de votre branche actuelle. Vous pouvez utiliser rebase pour y parvenir :

git checkout feature-branch  
git rebase main  

Lorsque vous exécutez cette commande, Git prend les commits de main et les applique sur feature-branch. Cela signifie que tous les commits sur feature-branch apparaîtront après les commits de main. Le résultat est un historique de validation plus propre et plus lisible sur feature-branch.

Cependant, lors de l'utilisation de rebase, il est important de noter que la modification de l'historique des commits peut avoir un impact sur les branches partagées publiquement. Par conséquent, si vous avez déjà poussé des commits de votre branche actuelle vers un référentiel distant, il est généralement conseillé de ne pas utiliser rebase sur cette branche pour éviter les conflits et un historique de commit désordonné.

 

Branch Commutation

Le changement de branche dans Git fait référence au processus de déplacement d'une branche à une autre. Lorsque vous changez de branche, Git déplace le pointeur HEAD vers la nouvelle branche, vous permettant de travailler sur cette branche et d'apporter des modifications sans affecter les autres branches.

Par exemple, disons que vous avez des branches feature-branch et main. Pour passer à feature-branch, vous utiliseriez la commande suivante :

git checkout feature-branch

Après avoir changé de branche, vous pouvez apporter des modifications au répertoire de travail. Toutes les commandes commit, add et checkout s'appliqueront à la branche actuelle.

Par exemple, si vous ajoutez un nouveau fichier et que vous le validez sur feature-branch, seule cette branche contiendra le commit, alors main qu'elle n'est pas affectée. Cela vous permet de développer des fonctionnalités distinctes, de corriger des bogues ou de travailler indépendamment sur différentes versions du code. Vous pouvez basculer entre les branches chaque fois que nécessaire pour travailler sur chaque branche séparément.