Ă propos de git push
La commande git push
prend deux arguments :
- Un nom de dépÎt distant, par exemple
origin
- Un nom de branche, par exemple
main
Par exemple :
git push REMOTE-NAME BRANCH-NAME
Par exemple, vous exécutez généralement git push origin main
pour pousser vos modifications locales vers votre dépÎt en ligne.
Renommage des branches
Pour renommer une branche, vous utilisez la mĂȘme commande git push
, mais vous ajoutez un autre argument : le nom de la nouvelle branche. Par exemple :
git push REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME
Cela pousse LOCAL-BRANCH-NAME
vers votre REMOTE-NAME
, mais il est renommé en REMOTE-BRANCH-NAME
.
Gestion des erreurs autres que de type avance rapide
Si votre copie locale dâun dĂ©pĂŽt nâest pas synchronisĂ©e avec le dĂ©pĂŽt en amont vers lequel vous poussez, ou se trouve « derriĂšre » celui-ci, vous obtiendrez un message indiquant non-fast-forward updates were rejected
.
Cela signifie que vous devez récupérer, ou « extraire », les modifications en amont avant de pouvoir pousser vos modifications locales.
Pour plus dâinformations sur cette erreur, consultez Gestion des erreurs autres que de type avance rapide.
RĂ©solution dâune validation bloquĂ©e
Pour maintenir la sĂ©curitĂ© du rĂ©fĂ©rentiel de destination, la protection push de GitHub vous protĂšge automatiquement contre la validation accidentelle de secrets dans les rĂ©fĂ©rentiels publics sur GitHub.com. Les fuites de secrets peuvent prĂ©senter des risques de sĂ©curitĂ© grave pour votre rĂ©fĂ©rentiel et votre chaĂźne dâapprovisionnement. Si GitHub dĂ©tecte que la validation que vous tentez dâenvoyer contient un secret pris en charge, lâenvoi sera bloquĂ©. Pour rĂ©soudre le blocage, vous devez :
- Supprimez le secret de votre ou vos validations. Pour plus dâinformations, consultez RĂ©solution dâun envoi (push) bloquĂ©.
- Ou suivre lâURL fournie pour afficher les options permettant dâautoriser lâenvoi. Pour plus dâinformations, consultez « Contournement de la protection push pour un secret ».
Pour en savoir plus sur la protection des envois, consultez Protection par émission de données pour les utilisateurs.
Poussée de balises
Par défaut, et sans paramÚtres supplémentaires, git push
envoie toutes les branches correspondantes qui ont les mĂȘmes noms que les branches distantes.
Pour pousser une seule balise, vous pouvez Ă©mettre la mĂȘme commande que pour pousser une branche :
git push REMOTE-NAME TAG-NAME
Pour pousser toutes vos balises, vous pouvez taper la commande :
git push REMOTE-NAME --tags
Suppression dâune balise ou branche distante
La syntaxe de suppression dâune branche est un peu obscure Ă premiĂšre vue :
git push REMOTE-NAME :BRANCH-NAME
Notez quâil y a un espace avant le signe deux-points. La commande ressemble aux mĂȘmes Ă©tapes que celles que vous devez effectuer pour renommer une branche. Toutefois, ici, vous dites Ă Git de ne rien pousser dans BRANCH-NAME
vers REMOTE-NAME
. En raison de cela, git push
supprime la branche sur le dépÎt distant.
DépÎts distants et duplications
Vous savez peut-ĂȘtre dĂ©jĂ que vous pouvez dupliquer des dĂ©pĂŽts sur GitHub.
Lorsque vous clonez un dĂ©pĂŽt que vous possĂ©dez, vous lui fournissez une URL distante qui indique Ă Git oĂč extraire et pousser des mises Ă jour. Si vous souhaitez collaborer avec le dĂ©pĂŽt dâorigine, vous ajoutez une nouvelle URL distante, gĂ©nĂ©ralement appelĂ©e upstream
, Ă votre clone Git local :
git remote add upstream THEIR_REMOTE_URL
Vous pouvez maintenant extraire des mises Ă jour et des branches Ă partir de leur duplication :
git fetch upstream
# Grab the upstream remote's branches
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://github.com/OCTOCAT/REPO
> * [new branch] main -> upstream/main
Lorsque vous avez terminĂ© dâapporter des modifications locales, vous pouvez pousser votre branche locale vers GitHub et lancer une demande de tirage.
Pour plus dâinformations sur lâutilisation de duplications, consultez Synchronisation dâune duplication.