То, что вы хотите сделать, это "для каждой удаленной ветви в репо-о, создать ту же ветку, указывающую на ветку репо-о, если у меня ее нет, или получить информацию о локальной ветке из того, что находится в той же ветке в репо, и в конце вставьте все эти ветки в мой репо ".
Если предположить, что ваши пульты действительно имеют имена repo-o
и repo-f
, я бы поиграл с чем-то вроде bash
:
for repo_o_branch in \
$(git branch -a|grep repo-o|perl -nle's,^\s*repo\-o/,,;print $_';
do
( \
( git checkout $repo_o_branch \
&& git pull --rebase repo-o $repo_o_branch) \
|| ( git checkout -b $repo_o_branch repo-o/$repo_o_branch ) \
) && git push repo-f $repo_o_branch;
done
Для всех «веток репо» (обозначается git branch -a
как «repo-o / branchname», без «пробелов и части« repo-o / »»),
- попробуйте проверить ветку и , сделав внутри нее
git pull --rebase repo-o branchname
,
- или, если
git checkout
завершится неудачно (поскольку у вас нет этой ветви): извлеките новую ветку, названную в честь имени ветви репо, и укажите его на фирменное имя репо.
- Если что-то из вышеперечисленного выполнится успешно, добавьте только что созданное или обновленное имя ветки в репозиторий.
сезон по вкусу; лучше всего использовать только что созданный git-клон repo-f
с удаленным repo-o
, на случай, если что-то пойдет не так;)