Git push : envoyer les changements locaux vers le distant !

Pour parler de git push, il faut d’abord comprendre ce qu’est un git push. Git et GitHub est une exigence importante pour ceux qui veulent travailler dans le domaine du développement. De nombreux recruteurs indiquent explicitement qu’ils parcourent GitHub à la recherche de professionnels actifs. De plus, git permet à plusieurs personnes de travailler simultanément sur un même projet.

Beaucoup de gens s’inquiètent de mémoriser les commandes de base de git, mais ne cherchent pas à les comprendre. Cela peut entraîner des problèmes pour toute l’équipe.

C’est également le cas pour git pushqui envoie les modifications locales à un référentiel distant. Cette commande étant de la plus haute importance, nous allons tout vous expliquer à son sujet, comment l’utiliser et ce qu’il faut faire en cas de problème.

  • Qu’est-ce que Git push et à quoi sert-il ?
  • Comment faire un push Git ?
  • Problèmes éventuels rencontrés lors de la poussée et comment les résoudre ?
  • Options à utiliser avec Git push

Qu’est-ce que Git push et à quoi sert-il ?

Git push est une commande qui permet d’envoyer les modifications de votre machine locale à une machine distante.. Mais, comprenons mieux :

Imaginez que vous développez un projet avec une équipe. Le projet sur lequel vous travaillez est sur GitHub, mais vous allez le développer sur votre ordinateur. Comment faites-vous « télécharger » votre développement sur GitHub?

Pour soumettre vos modifications, vous utiliserez commande git push. Avant cela, bien sûr, nous avons d’autres commandes, mais c’est git push qui prendra tout ce que vous avez fait et le placera à un endroit où n’importe quel collaborateur pourra voir et reprendre vos modifications.

Schéma du fonctionnement de git push

Comme nous pouvons le voir sur l’image, vous développez essentiellement dans le cadre de la dépôt localc’est-à-dire votre ordinateur. Lorsque vous faites le commande git pushvous poussez ces changements de votre référentiel local vers une référentiel distant et toutes les personnes qui ont accès au référentiel distant pourront accéder à vos modifications.

Comment faire un push Git ?

Pour faire git push, vous devez d’abord effectuer certaines étapes qui précèdent cette commande.

Premièrement, vous avez besoin d’un terminal de ligne de commande pour exécuter les commandes git. Sur le système d’exploitation Windows, nous disposons du Power Shell, de CMD et du terminal propre à Git, le Git bash. Si votre système d’exploitation est Windows, choisissez d’utiliser git bash. Sous Linux, vous pouvez utiliser le terminal Shell.

Imaginons un scénario dans lequel un projet existe déjà sur GitHub et vous devez le cloner, la première commande sera donc :

code pour cloner le projet

Une fois que vous avez fait cela, vous pouvez créer une branche pour vous avec la commande :

code pour créer une branche

Avec cela, vous avez déjà créé votre branche et pouvez maintenant la préparer pour le « téléchargement » vers le dépôt distant, et pour ce faire, il suffit de donner les commandes :

code pour télécharger la branche

Et maintenant, nous en arrivons à la très attendue git push ! Nous en avons ici quelques utilisations spécifiques, dans ce cas précis, nous allons juste monter une branchedonc l’ordre à donner est le suivant :

Utilisation de git push

Comme vous ne téléchargez qu’une seule branche, vous pouvez ajouter le -u comme indiqué dans l’image, car vous créez et « téléchargez » une nouvelle branche vers le référentiel distant.

Nous avons également une autre séquence de commandes qui précède git push qui est extrêmement importante et largement utilisée.

Après avoir créé une nouvelle branche, vous allez commencer le développement du projet et vous ne ferez probablement pas tout en quelques heures, il est donc important que vous envoyer les changements sans erreur au référentiel distant, en pensant que peut-être, lorsque vous vous réveillerez le lendemain avec l’excitation de continuer à développer votre projet, votre ordinateur pourrait ne pas s’allumer et vous pourriez avoir besoin de le formater.

Et si vous devez formater votre ordinateur, vous perdrez tout le développement que vous avez fait, parce que vous ne pourrez pas… « sauvegardé » dans le référentiel distant. Ce serait plutôt triste, n’est-ce pas ?

Par conséquent, il est fortement recommandé que pour chaque fonctionnalité développée sans erreurs, vous fassiez un commit et commettre cette modification dans le référentiel distant. Mais encore une fois, avant d’effectuer la poussée, vous devez donner d’autres ordres, comme :

commande git add
commande git commit
git push

Vous voyez que maintenant nous n’avons plus besoin de -u, parce que nous téléchargeons les changements de fichiers et pas seulement la branche.

Essayons de mieux comprendre ces trois commandes couramment utilisées.

git add

Il préparera les changements que vous avez faits pour être téléchargés, mais ici, ils n’ont pas encore été téléchargés.

git commit

Le commit git « emballe » les changements que la commande git add a préparé pour être envoyé.

git push

Il enverra effectivement ces changements.

Schéma de représentation des commandes liées à git push

Les problèmes possibles rencontrés lors de la poussée et comment les résoudre ?

L’utilisation de git push comme nous pouvons le voir, est assez simple, mais parfois nous pouvons rencontrer quelques problèmes et nous comprenons que pour ceux qui débutent, le simple fait d’être Exécuter des commandes dans un terminal est déjà effrayant en soi. Imaginez qu’une erreur se produise ! Mais nous allons vous aider à comprendre et à résoudre certains de ces problèmes éventuels.

Parfois, le développeur est tellement anxieux et concentré sur le clonage du projet et le développement qu’il oublie un détail très important… changer de branche.

Sans s’en rendre compte, la personne chargée du développement peut commencer à développer et lorsqu’elle va exécuter la commande git push le terminal renvoie un message d’erreur, indiquant qu’il n’est pas possible de pousser les changements vers le référentiel distant.

Cela peut être dû au fait que vous n’avez pas changé de branche et que vous êtes toujours sur la branche principale, qui dans certains cas est « verrouillé« , ce qui signifie que vous ne serez peut-être pas autorisé à livrer vos modifications du dépôt local directement à la branche principale. Croyez-moi, ne pas avoir accès à la branche principale peut être très agréable !

Dans ce cas, vous pouvez exécuter la commande git status pour vérifier sur quelle branche vous vous trouvez.

Un autre problème qui peut se produire, et probablement pour la même raison que ci-dessus, est que vous n’avez pas créé de branche et de votre projet n’est sur aucune branche. Pour résoudre ce problème, il suffit d’exécuter les commandes :

  • git checkout -b [nomedabranch]

Avec cette commande, vous allez créer une nouvelle branche, puis comme nous l’avons vu plus haut, il suffit de soumettre votre branche avec la commande :

  • git push -u origine [nomedabranch]

Un autre problème qui peut se produire est commettre des changements dans la mauvaise branche. Pour résoudre ce problème, il suffit d’exécuter :

  • git checkout [nomedabranch]

Remarquez que cette commande est différente de la commande mentionnée ci-dessus : ici nous n’utilisons pas -b, car nous ne voulons pas créer une branche mais aller vers une branche existante. Alors, faites :

  • git merge [main]

Avec cette commande, vous fusionnez les commits d’une branche avec une autre. Ensuite, exécutez à nouveau la commande git push pour valider vos modifications.

Enfin, corrigez la branche avec laquelle vous avez accidentellement envoyé vos modifications :

  • git reset -hard

D’autres problèmes peuvent en découler, mais c’est ça la programmation : découvrir un nouveau problème chaque jour ! Cependant, gardez à l’esprit que tout a une solution, il suffit de la trouver.

Options à utiliser avec Git push

Nous avons quelques options à utiliser avec git push, selon nos besoins et l’urgence d’avoir le projet dans le dépôt distant. Cependant, nous devons faire attention à l’utilisation de certaines commandes.

  • git push -f

Dans certains cas, le git push est rejetéparce que vous pouvez partager la branche avec un autre développeur qui a fait un changement et vous n’avez pas exécuté git pull pour apporter les changements qu’il a fait à votre dépôt local. Par conséquent, lorsque vous essayez d’exécuter la commande git push, git rejettera votre tentative. Ceci afin d’éviter que vous n’écrasiez accidentellement les modifications de votre collègue.

Par conséquent, utilisez cette commande si vous êtes absolument sûr de ce que vous faites ou si vous développez sur une branche propre, vous n’aurez pas de problèmes si votre fichier est écrasé par ce que vous essayez de télécharger.

  • git push -u origine [nomedabranch]

Comme nous l’avons vu plus haut, cette commande est utilisée lorsque nous voulons envoyer la branche que nous avons créée vers le référentiel distant. Cela créera un « lien » entre votre référentiel local et le référentiel distant.

  • git push -all

Avec cette commande, nous sommes pousser toutes les branchesou des branches, en une seule fois vers le référentiel distant.

  • git push -tags

Cette commande enverra tous les balises vers le référentiel distant. Une balise est un marquage qui pointe vers des points spécifiques de l’historique Git.

Comme nous l’avons vu, git push est une commande extrêmement importante pour que les modifications apportées au projet quittent le dépôt distant et aillent dans le dépôt local. Mais il est important de connaître les commandes qui précèdent git push et ses dérivations et de les utiliser avec soin, en comprenant leur fonctionnement.

Si vous avez aimé ce contenu, ne manquez pas de lire les 10 commandes Git que toute personne qui programme doit connaître !