Я часто нахожу себя следующим образом:
git push remote1 branch1 branch2 tag1 tag2 tag3..
git push remote2 branch1 branch2 tag1 tag2 tag3..
Я бы предпочел псевдоним, где вместо этого могу набрать его:
git pushall branch1 branch2 tag1 tag2 tag3 ..
Примечание. Я знаю, что могу создать новый удаленный "все" с несколькими URL-адресами. Давайте не будем обсуждать это здесь, но сосредоточимся на псевдониме вместо этого!
Я согласен на жесткие коды удаленных имен, потому что у меня есть несколько проектов с одинаковыми удалёнными именами (обычно "drupal" и "github" ).
Прогресс до сих пор
Я уже выяснил версию без вариации:
[alias]
pushall = "!git push github $1; git push drupal $1; #"
Два трюка здесь были
- использование двойных кавычек для предотвращения ';' от специального значения в файлах
.ini
-
#
, чтобы игнорировать остальную часть строки.
Но это только толкает одну ветвь (или тег) за раз. Поэтому я должен был бы набрать это:
git pushall branch1
git pushall branch2
git pushall tag1
git pushall tag2
git pushall tag3
...
Я бы предпочел псевдоним, где я могу набрать это:
git pushall branch1 branch2 tag1 tag2 tag3 ..
Почему не новый удаленный "все" с несколькими push-адресами?
Как говорится, позвольте сосредоточиться на псевдонимах, чтобы читатели находили то, что искали.
В любом случае, вот почему я не создаю удаленное "все" :
- Мне нужно было бы сделать это один раз в проекте и не могли бы сделать это глобально. В моем случае hardcoding удаленные имена в глобальном псевдониме на самом деле прекрасны!
- Afaik, я бы оспаривал свою историю с помощью refs как "all/branch1" вместо или в дополнение к "remote1/branch1" и "remote2/branch1".
Правильное место для обсуждения здесь будет pull/push из нескольких удаленных мест
См. также
Ниже приводятся следующие значения, но они не учитывают вариационные параметры:
- Git Псевдоним - несколько команд и параметров
- Синтаксис для псевдонимов Git с несколькими командами
- Git псевдоним с позиционными параметрами
Возможно, это будет полезно, но он обращается к чистой оболочке script, а не к Git псевдонимам: