Git: нажатие на два репозитория в одной команде
Я хочу сделать git push origin
и git push my_other_remote
в одной строке. Возможно ли это?
Ответы
Ответ 1
Вы можете получить тот же эффект, добавив дополнительный URL-адрес push для вашего пульта origin
. Например, если URL-адреса существующих пультов следующие:
$ git remote -v
origin [email protected]:something.git (fetch)
origin [email protected]:something.git (push)
my_other_remote git://somewhere/something.git (fetch)
my_other_remote git://somewhere/something.git (push)
Вы можете сделать:
git remote set-url --add --push origin git://somewhere/something.git
Затем git push origin
будет нажимать на оба репозитория. Однако вы можете настроить новый пульт, называемый both
, чтобы избежать путаницы. Например:
git remote add both [email protected]:something.git
git remote set-url --add --push both [email protected]:something.git
git remote set-url --add --push both git://somewhere/something.git
... затем:
git push both
... попытается нажать на оба репозитория.
Ответ 2
В файле .git/config
можно поместить следующее:
[remote "both"]
url = url/to/first/remote
url = url/to/other/remote
Теперь вы можете нажать на оба URL с помощью git push both
.
Если вы также хотите извлечь из них (полезно для синхронизации), вы можете добавить следующие строки в свой .git/config
файл:
[remotes]
both = origin, other
Теперь вы также можете запустить git fetch both
.
Ответ 3
Просто небольшое дополнение к уже предоставленным отличным ответам - если вы не хотите беспокоиться о добавлении "обоих" и просто хотите, чтобы все операции автоматически помещались в оба репозитория, просто добавьте ваш второй репозиторий в качестве другого URL-адреса в исходной точке в конфигурации git.
[remote "origin"]
url = someUrl.git
url = secondUrl.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
Теперь "Git Push" использует оба.