git remote --v afficher les informations de la télécommande
Origin https://github.com/test/testing-iOS.git (fetch)
Origin https://github.com/test/testing-iOS.git (Push)
Cela montre que la récupération et la transmission utilisent la même URL distante.
Question:
Quand (si jamais) l'URL distante pour fetch et Push sera différente?
Quelles commandes pouvez-vous utiliser pour modifier séparément l'URL distante pour la récupération ou la transmission?
Oui (en utilisant une télécommande différente), et c'est pourquoi Git 2.5 introduit un nouveau raccourci ref @{Push}
.
Voir " Affichage des validations Git non poussées "
Quelles commandes pouvez-vous utiliser pour modifier séparément l'URL distante pour la récupération ou la transmission?
Vous avez besoin d'une télécommande séparée:
git remote add myfork /url/for/my/fork
git config remote.pushdefault myfork
Le billet de blog GitHub " Prise en charge améliorée des flux de travail triangulaires " illustre l'utilisation de @{Push}
:
Découvrez les engagements que vous avez ajoutés à votre branche actuelle depuis le dernier push:
git clone https://github.com/YOUR-USERNAME/atom
cd atom
git config remote.pushdefault Origin
git config Push.default current
remote.pushdefault
spécifie où à pousser (vers quel repo distant).Push.default
spécifie quoi pour pousser (quelle refspec), quand aucune refspec est explicitement donné.current
, dans ce dernier cas, signifie "Poussez la branche actuelle pour mettre à jour une branche avec le même nom du côté réception."La branche suivante va récupérer d'une URL, pousser à une autre:
git remote add upstream https://github.com/atom/atom
git fetch upstream
git checkout -b whizbang upstream/master
(Ici, les branches whizbang
branches upstream/master
, mais pousse à Origin/whizbang
)
git log @{Push}..
Cela utilise le nouveau
@{Push}
notation, qui indique la valeur actuelle de la branche de suivi à distance vers laquelle la branche actuelle serait poussée par git Push, à savoirOrigin/whizbang
.
Vous pouvez également vous référer à la destination Push d'une branche arbitraire en utilisant la notationwhizbang@{Push}
.
D'après la documentation, les URL de récupération et de transmission doivent être identiques.
http://git-scm.com/docs/git-remote
Commande pour définir les URL push et fetch
'git remote set-url' [--Push] <name> <newurl> [<oldurl>]
Notez que l'URL de transmission et l'URL de récupération, même si elles peuvent être définies différemment, doivent toujours faire référence au même endroit. Ce que vous avez poussé vers l'URL de transmission devrait être ce que vous verriez si vous récupériez immédiatement à partir de l'URL de récupération. Si vous essayez de récupérer d'un endroit (par exemple votre amont) et de pousser vers un autre (par exemple votre référentiel de publication), utilisez deux télécommandes distinctes.