La commande Git Push ajoute les contenus d’un dépôt local vers un dépôt central. Comme cette commande peut écraser les mo­di­fi­ca­tions, il est pré­fé­rable de ne l’exécuter qu’en ciblant une branche vide.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Git Push, c’est quoi ?

Le logiciel Git permet de tra­vail­ler à plusieurs sur des projets de dé­ve­lop­pe­ment, tran­quil­le­ment et sans risque pour chacun des membres de l’équipe de codage. Ceci est rendu possible grâce à l’uti­li­sa­tion de dépôts in­di­vi­duels locaux. Une fois terminées, les mo­di­fi­ca­tions peuvent être intégrées à l’ensemble du projet avec la commande Git Push. Celle-ci permet d’ajouter les contenus de votre dépôt local dans un dépôt distant, auquel les autres dé­ve­lop­peurs ont eux aussi accès. Git Push est donc une commande très im­por­tante dans le dé­rou­le­ment du projet.

La commande fonc­tionne comme le pendant des commandes Git Fetch ou Git Pull. Alors que ces dernières font glisser des contenus d’un dépôt distant vers votre dépôt local, Git Push va dans l’autre sens. Ces commandes au­to­ma­ti­sent de nom­breuses étapes de travail en simultané (c’est notamment l’une des dif­fé­rences entre Git et SVN. Une fois les mo­di­fi­ca­tions apportées, il suffit de les ajouter au dépôt distant. Attention : notez bien que Git Push peut écraser d’autres mo­di­fi­ca­tions, la commande doit donc être utilisée avec pré­cau­tion.

Syntaxe et fonc­tion­ne­ment de Git Push

La syntaxe de Git Push est simple : tout d'abord, vous écrivez la commande elle-même, puis vous indiquez le dépôt distant et enfin la branche locale que vous souhaitez té­lé­char­ger. Voici à quoi cela ressemble :

git push <depot-distant> <branche-locale></branche-locale></depot-distant>

Git crée une branche locale dans le dépôt-cible et y ajoute tous les contenus, les commits et les objets internes. Le logiciel de contrôle de versions inclut toutefois une fonction de pro­tec­tion qui bloque le Git Push si jamais le char­ge­ment ne pouvait pas se faire en fast-forward merge (fusion rapide). Cette fonc­tion­na­lité évite que la commande n’efface par mégarde les commits.

Exemple de Git Push

L’exemple suivant montre à quoi ressemble un Git Push dans la pratique. Pour cela, supposons que vous avez apporté des mo­di­fi­ca­tions dans votre dépôt local, que vous les avez in­té­gra­le­ment testées et que celles-ci sont ap­prou­vées. L’étape suivante consiste à préparer ces mo­di­fi­ca­tions pour le dépôt distant afin que les autres membres de l’équipe puissent eux aussi y accéder. Pour cela, on utilise dif­fé­rentes commandes qui restent toujours à portée de main grâce à la très pratique Git Cheat Sheet avec PDF à té­lé­char­ger.

git checkout main
git fetch origin main
git rebase -I origin/main
# Squash commits, fix up commit messages etc.
git push origin main

La commande Git Checkout permet de basculer sur la branche prin­ci­pale. Git Fetch s’assure que l’état du dépôt local cor­res­pond celui du dépôt central. La commande Git Rebase fusionne l’état du dépôt central avec celui du dépôt local. Il est ainsi possible d’effectuer ensuite une fast-forward merge puisque les bases des dépôts central et local sont iden­tiques. Enfin, il suffit d’exécuter Git Push qui transmet l’état actuel, avec toutes ses mo­di­fi­ca­tions, au dépôt central.

Autres options de la commande

En plus de la commande standard dont la syntaxe est détaillée ci-dessus, Git Push peut se cons­truire avec dif­fé­rents arguments.

Ajouter toutes les branches

git push <depot-distant> --all</depot-distant>

Cette commande rappelle la syntaxe standard, sim­ple­ment au lieu d’ajouter une branche sé­lec­tion­née elle ajoute di­rec­te­ment toutes les branches locales au dépôt central. Ainsi, pas besoin de répéter la procédure pour chacune des branches.

Ajouter des éti­quettes

git push <depot-distant> --tags</depot-distant>

Cette option permet d’envoyer toutes les éti­quettes locales vers le dépôt distant. Un Git Push ordinaire ne prend pas en compte les éti­quettes (ou tags).

Forcer le Git Push

git push <depot-distant> --force</depot-distant>

Cette commande ressemble aussi à la syntaxe standard, mais elle permet de forcer le Git Push même lorsque la fast-forward merge n’est pas possible. Comme cela augmente le risque d’écraser certaines mo­di­fi­ca­tions et d’engendrer des erreurs, mieux vaut éviter de l’utiliser.

Git Push vers un dépôt vide

Pour s’assurer que les projets im­por­tants restent intacts suite à un Git Push, il est re­com­mandé de ne faire la commande que dans des dépôts vides. Il suffit de les créer avec l’argument « --bare ». Si vous faites un Git Push dans un dépôt vide, le travail et les mo­di­fi­ca­tions des autres dé­ve­lop­peurs ne seront pas affectés, ni la structure du dépôt distant.

Écraser des branches avec Git Push

Git Push peut aussi être utilisé pour supprimer une branche locale à distance. La commande ressemble alors à ceci :

git branch -d ancienne-branche
git push origin :ancienne-branche

Cette commande efface la branche « ancienne-branche » du dépôt distant.

Conseil
Mettez en ligne vos sites Web et ap­pli­ca­tions en trois étapes seulement ! Avec Deploy Now de IONOS, profitez d’une ins­tal­la­tion rapide avec un système évolutif. Testez Deploy Now pendant un mois, c’est gratuit !
Aller au menu principal