Dans les dernières versions de Git que vous pouvez ajouter plusieurs pushurl
s pour une distance. Utilisez la commande suivante pour ajouter deux pushurl
s à votre origin
:
git remote set-url --add --push origin git://another/repo.git
git remote set-url --add --push origin git://one_more/repo.git
Ainsi, lorsque vous poussez à l' origin
, il va le pousser à les deux référentiels.
Mise à JOUR 1: Git 1.8.0.1 et 1.8.1 (et peut-être d'autres versions) semblent avoir un bug qui provoque --add
, afin de remplacer l'URL d'origine de la première utilisation, vous devez ajouter l'URL d'origine à l'aide de la même commande. Faire git remote -v
doit faire l'Url pour chaque distance.
Mise à JOUR 2: Junio C. Hamano, le Git responsable, il a expliqué comment il a été conçu. Faire git remote set-url --add --push <remote_name> <url>
ajoute un pushurl
pour une distance, qui remplace l'URL par défaut pour la pousse. Cependant, vous pouvez ajouter plusieurs pushurl
s pour une télécommande, ce qui vous permet ensuite de pousser à de multiples télécommandes à l'aide d'un seul git push
. Vous pouvez vérifier ce comportement ci-dessous:
$ git clone git://original/repo.git
$ git remote -v
origin git://original/repo.git (fetch)
origin git://original/repo.git (push)
$ git config -l | grep '^remote\.origin'
remote.origin.url=git://original/repo.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
Maintenant, nous allons ajouter un pushurl
:
$ git remote set-url --add --push origin git://another/repo.git
$ git remote -v
origin git://original/repo.git (fetch) <-- **UNCHANGED**
origin git://another/repo.git (push) <-- **CHANGED**
$ git config -l | grep '^remote\.origin'
remote.origin.url=git://original/repo.git <-- **UNCHANGED**
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.pushurl=git://another/repo.git <-- **ADDED**
Ici, git remote -v
montre le nouveau pushurl
pour le push, donc si vous ne git push
, il va pousser à l' git://another/repo.git
seulement. Cela montre à quel pushurl
remplace l'url par défaut (à distance.de l'origine.l'url).
Maintenant, nous allons ajouter un nouveau pushurl
et vérifier de nouveau:
$ git remote set-url --add --push origin git://one_more/repo.git
$ git remote -v
origin git://original/repo.git (fetch) <-- **UNCHANGED**
origin git://another/repo.git (push) <-- **UNCHANGED**
origin git://one_more/repo.git (push) <-- **ADDED**
$ git config -l | grep '^remote\.origin'
remote.origin.url=git://original/repo.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.pushurl=git://another/repo.git <-- **UNCHANGED**
remote.origin.pushurl=git://one_more/repo.git <-- **ADDED**
Vous voyez les deux pushurl
s, nous avons ajouté sont conservés. Maintenant, un seul git push
poussera à la fois git://another/repo.git
et git://one_more/repo.git
.