Mettre à jour une branche distante après avoir réécrit l'historique

GitGitBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Git est un puissant système de contrôle de versions qui permet aux développeurs de suivre les modifications apportées à leur base de code. L'une des principales fonctionnalités de Git est la capacité de réécrire l'historique, ce qui peut être utile lorsque vous avez besoin de modifier des commits antérieurs. Cependant, la réécriture de l'historique peut entraîner des problèmes lors de l'envoi de modifications vers un référentiel distant. Dans ce laboratoire, vous allez apprendre à mettre à jour une branche distante après avoir réécrit l'historique localement.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/remote -.-> lab-12734{{"Mettre à jour une branche distante après avoir réécrit l'historique"}} end

Mettre à jour une branche distante après avoir réécrit l'historique

Lorsque vous réécrivez l'historique localement, vous créez un nouveau commit avec un hash SHA-1 différent. Cela signifie que l'historique des commits sur votre branche locale est différent de l'historique des commits sur la branche distante. Si vous essayez d'envoyer vos modifications vers la branche distante, Git refusera le push car il considérera que l'historique des commits a divergé. Pour résoudre ce problème, vous devez forcer une mise à jour de la branche distante.

Pour terminer ce laboratoire, vous utiliserez le référentiel Git git-playground de votre compte GitHub, qui provient d'un fork de https://github.com/labex-labs/git-playground.git.

  1. Clonez le référentiel git-playground sur votre machine locale :
git clone https://github.com/your-username/git-playground.git
  1. Mettez à jour un commit avec le message "Added file2.txt" en un commit avec le message "Update file2.txt" :
git commit --amend
  1. Poussez les modifications de la branche locale vers le référentiel distant :
git push
  1. Si vous ne pouvez pas pousser avec succès, poussez avec force :
git push -f origin master

Le drapeau -f force Git à mettre à jour la branche distante avec vos modifications, même si l'historique des commits a divergé.

Voici le résultat final :

Résumé

Dans ce laboratoire, vous avez appris à mettre à jour une branche distante après avoir réécrit l'historique localement. En utilisant la commande git push -f, vous pouvez forcer Git à mettre à jour la branche distante avec vos modifications, même si l'historique des commits a divergé. Il est important d'utiliser cette commande avec prudence, car elle peut écraser les modifications effectuées par d'autres développeurs.