У меня на самом деле есть функция bash
, которую довольно легко изменить в соответствии с вашими потребностями. Он называется gsync
и в основном синхронизирует все ветви, для которых у меня есть локальная копия. Выходные данные git br
- это одно имя ветви для всех ветвей, за исключением того, что моя текущая ветвь также имеет *
в начале строки.
Поэтому я использую это для получения текущей ветви и сначала обработайте все остальные ветки, чтобы я снова оказался в той же ветке, в которой начал.
function gsync {
old="$(git branch | awk 'NF==2{print $2}')"
for i in $(git branch | awk 'NF==1{print}') ; do
printf "\n===== $i\n"
git co $i && git pull
done
printf "\n===== $old\n"
git co $old && git pull
printf "\n=====\n"
git branch
}
Вот пример прогона:
[~/myrepo]> gsync
===== PaxBranch-42
Switched to branch 'PaxBranch-42'
Your branch is up to date with 'origin/PaxBranch-42'.
Already up to date.
===== master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
Already up to date.
=====
PaxBranch-42
* master