À 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 <REMOTENAME> <BRANCHNAME>
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 <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>
Cela pousse LOCALBRANCHNAME
vers votre REMOTENAME
, mais il est renommé en REMOTEBRANCHNAME
.
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 ».
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 <REMOTENAME> <TAGNAME>
Pour pousser toutes vos balises, vous pouvez taper la commande :
git push <REMOTENAME> --tags
Suppression d’une balise ou branche distante
La syntaxe de suppression d’une branche est un peu obscure à première vue :
git push <REMOTENAME> :<BRANCHNAME>
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 BRANCHNAME
vers REMOTENAME
. 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://HOSTNAME/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 ».