Menu

Push : Qu'est-ce qu'un push en Git ?

5 min de lecture Mis à jour le 02 Avr 2026

Définition

Un push Git est l'opération qui envoie les commits locaux vers un dépôt distant. C'est le mécanisme par lequel un développeur partage son travail avec le reste de l'équipe en publiant ses modifications sur le serveur central.

Qu'est-ce qu'un push en Git ?

Le push est l'une des commandes les plus fondamentales de Git. Exécutée via git push, elle transfère les commits de votre dépôt local vers un dépôt distant (remote), typiquement hébergé sur GitHub, GitLab ou Bitbucket. En d'autres termes, le push est le moment où votre travail local devient accessible aux autres membres de l'équipe.

Git fonctionne selon un modèle distribué : chaque développeur possède une copie complète du dépôt sur sa machine. Le push est l'opération qui synchronise votre copie locale avec le serveur distant. Sans push, vos modifications restent invisibles pour vos collègues, même si vous avez effectué des dizaines de commits en local.

Chez Kern-IT, le push est une action quotidienne et récurrente. Nos développeurs poussent régulièrement leur code vers GitHub pour déclencher les pipelines CI/CD, permettre les code reviews et assurer une collaboration fluide au sein des équipes projet.

Pourquoi le push est important

Le push est le pont entre le travail individuel et la collaboration d'équipe. Il joue un rôle central dans le flux de développement moderne et remplit plusieurs fonctions essentielles.

  • Partage du code : le push rend vos modifications disponibles pour l'ensemble de l'équipe. C'est la manière standard de publier votre travail dans un environnement collaboratif.
  • Sauvegarde distante : en poussant vers un serveur distant, vous créez une copie de sauvegarde de votre travail. Si votre machine locale tombe en panne, votre code est préservé sur le serveur.
  • Déclencheur CI/CD : dans la plupart des projets modernes, un push déclenche automatiquement les pipelines d'intégration continue : tests automatisés, analyse de code, et parfois même le déploiement en environnement de staging.
  • Traçabilité : chaque push est enregistré avec un horodatage et l'identité de l'auteur, ce qui garantit une traçabilité complète des modifications apportées au projet.
  • Prérequis aux pull requests : pour créer une pull request et soumettre votre code à une revue, il faut d'abord avoir poussé vos commits sur le dépôt distant.

Comment ça fonctionne

Le mécanisme du push repose sur la comparaison entre l'état de votre branche locale et celui de la branche correspondante sur le dépôt distant. Lorsque vous exécutez git push origin main, Git identifie les commits présents localement mais absents du distant, et les transfère dans l'ordre chronologique.

Si votre branche locale est en avance sur la branche distante (c'est-à-dire que vous avez des commits que le distant n'a pas), le push s'effectue sans problème. Git ajoute simplement vos nouveaux commits à la suite de l'historique distant.

En revanche, si la branche distante contient des commits que vous n'avez pas en local (parce qu'un collègue a poussé entre-temps), Git refusera le push pour éviter d'écraser le travail d'autrui. Vous devrez d'abord récupérer ces modifications avec git pull ou git fetch suivi d'un merge ou rebase, résoudre les éventuels conflits, puis retenter le push.

La variante git push -u origin nom-de-branche est particulièrement utile lors du premier push d'une nouvelle branche. Le flag -u (ou --set-upstream) configure le tracking entre votre branche locale et la branche distante, ce qui vous permettra par la suite de simplement taper git push sans préciser la destination.

Les différentes options de push

Git offre plusieurs variantes de la commande push pour répondre à des besoins spécifiques. Le git push --force force l'envoi en écrasant l'historique distant, une opération dangereuse à utiliser avec une extrême prudence car elle peut effacer le travail de collègues. L'alternative plus sûre git push --force-with-lease vérifie d'abord que personne n'a poussé de nouveaux commits avant d'écraser.

Le git push --tags envoie les tags locaux vers le distant, utile pour marquer des versions de release. Le git push origin --delete nom-de-branche supprime une branche sur le dépôt distant, pratique pour nettoyer après un merge de pull request.

Exemple concret

Un développeur Kern-IT travaille sur une nouvelle fonctionnalité pour un client. Il crée une branche feature/user-dashboard, effectue plusieurs commits au fil de la journée, puis pousse son travail en fin de journée avec git push -u origin feature/user-dashboard. Ce push déclenche automatiquement les tests dans le pipeline GitHub Actions du projet.

Le lendemain matin, il crée une pull request sur GitHub pour demander une code review à un collègue. Le collègue examine le diff, laisse des commentaires, et le développeur pousse de nouveaux commits de correction. Chaque push met automatiquement à jour la pull request et relance les tests. Une fois la review approuvée, la branche est mergée dans main.

Bonnes pratiques

  1. Poussez régulièrement : ne gardez pas des dizaines de commits en local. Des push fréquents facilitent la collaboration et servent de sauvegarde.
  2. Évitez le force push sur les branches partagées : le --force peut écraser le travail de vos collègues. Si vous devez forcer, utilisez --force-with-lease et prévenez l'équipe.
  3. Vérifiez avant de pousser : exécutez git status et git log pour confirmer que vous poussez exactement ce que vous souhaitez.
  4. Utilisez le tracking : configurez le tracking upstream avec -u lors du premier push d'une branche pour simplifier les push suivants.
  5. Ne poussez jamais de secrets : vérifiez que vos commits ne contiennent pas de mots de passe, clés API ou fichiers de configuration sensibles avant de pousser.

Conclusion

Le push est le geste qui transforme un travail local en contribution partagée. Simple en apparence, il est au centre du flux de travail Git et mérite une attention particulière pour éviter les erreurs courantes. Maîtriser les subtilités du push, c'est garantir une collaboration fluide et un historique de projet propre.

Conseil Pro

Utilisez git push --force-with-lease au lieu de git push --force. Cette variante vérifie que la branche distante n'a pas été modifiée depuis votre dernier fetch, ce qui protège contre l'écrasement accidentel du travail de vos collègues. C'est une habitude simple qui peut vous éviter des catastrophes.

Un projet en tête ?

Discutons de comment nous pouvons vous aider à concrétiser vos idées.