web-dev-qa-db-fra.com

L'URL distante pour l'extraction et la transmission sera-t-elle différente?

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?

32
Boon

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}:

https://cloud.githubusercontent.com/assets/1319791/8943755/5dcdcae4-354a-11e5-9f82-915914fad4f7.png

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 à 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, à savoir Origin/whizbang.
Vous pouvez également vous référer à la destination Push d'une branche arbitraire en utilisant la notation whizbang@{Push}.

21
VonC

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.

10
Suresh Sajja