Следующая однострочная строка ускоряет пересылку всех ветвей, у которых есть ветвь, если это возможно, и печатает ошибку в противном случае:
git branch \
--format "%(if)%(upstream:short)%(then)git push . %(upstream:short):%(refname:short)%(end)" |
sh
Как это работает?
ИспользуетсяПользовательский формат с помощью команды git branch
.Для каждой ветви, имеющей ветвь восходящего потока, она печатает строку со следующим шаблоном:
git push . <remote-ref>:<branch>
Это может быть передано непосредственно в sh
(при условии, что имена ветвей правильно сформированы).Пропустите | sh
, чтобы увидеть, что он делает.
Предостережения
Однострочник не будет связываться с вашими пультами.Выполните git fetch
или git fetch --all
перед его запуском.
В настоящее время извлеченная ветвь не будет обновлена сообщением типа
! [remote rejected] origin/master -> master (branch is currently checked out)
. Для этого вы можете прибегнуть к обычномуgit pull --ff-only
.
Псевдоним
Добавьте следующее к вашему .gitconfig
, чтобы git fft
выполнял эту команду:
[alias]
fft = !sh -c 'git branch --format \"%(if)%(upstream:short)%(then)git push . %(upstream:short):%(refname:short)%(end)\" | sh' -
См. Также мой .gitconfig
.Псевдоним - это сокращение от «ускоренного отслеживания (ответвления)».