Git Push Force Changements
Dans cet article, nous verrons comment pousser les modifications locales avec force dans le référentiel distant de Git.
Git permet uniquement de pousser les modifications locales vers le référentiel distant qui sont des descendants des modifications dans le référentiel distant.
Dans certains cas, nous pouvons vouloir pousser les changements qui ne le sont pas (c’est-à-dire) les changements qui peuvent être antérieurs aux changements dans le dépôt distant.
Nous devons utiliser la commande git push
avec l’option --force
dans de tels cas.
Nous allons maintenant illustrer cela par un exemple.
Utilisation de git push --force
pour pousser avec force les modifications locales dans le référentiel distant dans Git
Parfois, lorsque nous travaillons dans un environnement de développement collaboratif, nous rencontrons une situation où nous avons poussé certaines modifications dans le référentiel distant.
Maintenant, nous décidons que ces modifications ne sont plus pertinentes et nous voulons pousser les nouvelles modifications locales vers le référentiel distant.
En outre, certains autres coéquipiers ont peut-être déjà intégré ces modifications de référentiel distant, que nous avons avancées plus tôt ; et peut avoir travaillé dessus. Par la suite, ils peuvent avoir poussé leurs modifications vers le référentiel distant.
Git exige généralement que nous extrayions d’abord les modifications qui peuvent avoir été poussées par d’autres coéquipiers, à partir du référentiel distant, avant d’y pousser les nouvelles modifications locales.
Ainsi, dans de tels cas, nous devons utiliser la commande git push
avec l’option --force
. La syntaxe de la commande est git push origin <branch_name> --force
Supposons que nous ayons une branche nommée main
. On ferait alors comme suit pour pousser les changements avec force.
$ git push origin main --force
Attention : Cela a pour effet d’écraser les modifications déjà présentes sur le référentiel distant qui peuvent avoir eu lieu depuis le push précédent.
Ainsi, les modifications que vos coéquipiers ont peut-être déjà effectuées sur le référentiel distant seront écrasées.
Il existe une autre option pour la commande git push
, à savoir --force-with-lease
. Lors de l’utilisation de cette option avec git push
, un message d’erreur sera imprimé et Git ne poussera pas les modifications s’il y a déjà des modifications poussées sur le référentiel distant.
Cette option --force-with-lease
garantit que nous n’écraserons pas les modifications des autres coéquipiers.