Git Push для нескольких хранилищ одновременно [дубликата]

    

На этот вопрос уже есть ответ здесь:

    

Как я могу заставить git push выдвигать не только origin но также другой удаленный репозиторий?

as git push является только псевдонимом для git push origin, можно ли использовать псевдоним git push для одновременной отправки в 2 удаленных хранилища (только одной этой командой)?

Я не ищу здесь не-git-скрипт, но хотел бы настроить его для моего локального репозитория в git.

Когда я попробовал его с помощью сценариев после push, я потерпел неудачу.

76 голосов | спросил Kissaki 23 22010vEurope/Moscow11bEurope/MoscowTue, 23 Nov 2010 15:10:19 +0300 2010, 15:10:19

3 ответа


0

Я не думаю, что вы можете сделать это, просто установив флажок в git, но вы можете изменить файл конфигурации, который позволит вам загружать несколько удаленных репозиториев, не вводя их вручную вручную (ну, набрав их только в первый раз, а не после)

В файле .git/config вы можете добавить несколько URL-адресов для определенного пульта:

[remote "all"]
    url=ssh://[email protected]/repos/g0.git
    url=ssh://[email protected]/repos/g1.git

Если вы git push all, теперь вы нажимаете на все удаленные URL.

ответил g19fanatic 23 22010vEurope/Moscow11bEurope/MoscowTue, 23 Nov 2010 15:18:30 +0300 2010, 15:18:30
0

Нет ручного редактирования

Вы можете добавить несколько URL в удаленную ветку (например, all) непосредственно из командной строки, используя git config --add remote.xyz.url с другим URL-адресом:

 git config --add remote.all.url ssh://[email protected]/repos/g0.git
git config --add remote.all.url ssh://[email protected]/repos/g1.git

Полностью автоматический

Если вы супер ленивый и не хотите несколько раз копировать /вставлять URL, это для вас:

 function git-add-push-all() {
  while read -r name url method; do
    git config --add remote.all.url "$url"
  done < <(git remote -v | awk '!/^all/ && /push/')
}

git-add-push-all # from git (sub)directory

Возможен полный bashy-скрипт (тест $name и $method), но awk это мило и есть любовь для всех.

Нажмите

Затем вы можете нажать на все пульты с помощью

git push all

Ссылки

ответил Édouard Lopez 5 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 05 Sep 2013 17:24:38 +0400 2013, 17:24:38
0

Вы также можете получить URL-адрес с настроенных пультов:

for repo in g0 g1 ...
do
    git config --add remote.all.url `git config remote.$repo.url`
done

где g0, g1, ... - имена ваших пультов.

ответил Pierre-Olivier Vares 3 MarpmMon, 03 Mar 2014 19:15:58 +04002014-03-03T19:15:58+04:0007 2014, 19:15:58

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132