gsync Скрипт для синхронизации одной ветки во всех удалённых репозиториях (linux git bash)
Primary tabs
Скрипт также доступен в виде функции: https://github.com/vedro-compota/unix-co...
Делаем так:
- Создайте файл напр. с именем gsync, и заполните его кодом, указанным ниже
- дайте права на выполнение
- и положите его в корень вашего репозитория
Тогда чтобы синхронизировать веку master (можно и другую) во всех удалённых репозиториях просто используйте вызов (в консоли в корне репы):
./gsync master
Скрипт синхронизации (содержимое):
#!/bin/bash function gsync() { RemoteReposNames=() # объявляем массив RemoteDataText="$(git remote -v)" #echo "${RemoteDataText}" while read -r line; do #echo "... $line ..." words=($line) #printf "%s\n" "${words[@]}" #echo '--' RemoteReposNames+=("${words[0]}") # добавляем элемент в массив #printf "%s\n" "${RemoteReposNames[@]}" #echo '------' done <<< "$RemoteDataText" # оставляем только уникальные значения RemoteReposNames=($(echo "${RemoteReposNames[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')) echo 'Remotes in your repo are:' printf "%s\n" "${RemoteReposNames[@]}" echo 'Starting sync...' for remoteName in "${RemoteReposNames[@]}" do echo "Pull $remoteName $1----------- " git pull $remoteName $1 done for remoteName in "${RemoteReposNames[@]}" do echo "Push $remoteName $1---------- " git push $remoteName $1 done echo 'Sync is finished.' } gsync $1
- Log in to post comments
- 1484 reads