Robienie tego ręcznie nie jest już konieczne , dzięki nowoczesnym wersjom git! Zobacz rozwiązanie Malvineousa poniżej.
Reprodukcja tutaj:
git remote set-url origin --push --add <a remote>
git remote set-url origin --push --add <another remote>
Oryginalna odpowiedź:
Tego używam od dłuższego czasu bez złych konsekwencji i zasugerował Linus Torvalds na liście mailowej git .
Rozwiązanie araqnid jest odpowiednie do wprowadzenia kodu do repozytorium… ale kiedy, tak jak ja, masz wiele równoważnych autorytatywnych upstreamów (trzymam niektóre z moich bardziej krytycznych projektów sklonowane zarówno na prywatnym serwerze, GitHub, jak i Codaset), codzienne zmiany mogą być trudne.
Krótko mówiąc, git remote add wszystkie Twoje piloty indywidualnie… a następnie git config -edodaj scalonego pilota. Zakładając, że masz to repozytorium config:
[remote "GitHub"]
url = git@github.com:elliottcable/Paws.o.git
fetch = +refs/heads/*:refs/remotes/GitHub/*
[branch "Master"]
remote = GitHub
merge = refs/heads/Master
[remote "Codaset"]
url = git@codaset.com:elliottcable/paws-o.git
fetch = +refs/heads/*:refs/remotes/Codaset/*
[remote "Paws"]
url = git@github.com:Paws/Paws.o.git
fetch = +refs/heads/*:refs/remotes/Paws/*
… Aby utworzyć scalony-zdalny dla "Paws"i "Codaset", mogę dodać następujące po tych wszystkich:
[remote "Origin"]
url = git@github.com:Paws/Paws.o.git
url = git@codaset.com:elliottcable/paws-o.git
Kiedy to zrobię, kiedy git push Origin Masterto zrobię, popchnie to jedno Paws/Masteri drugie Codaset/Master, co ułatwi życie.
gitcech, jest zawarty w malvineous „s odpowiedź poniżej . Przyjęta odpowiedź jest niepoprawna.