[英]Updating multiple branches of a forked repository on Github
我有一个分叉的github存储库(称之为repo-O并调用我的fork repo-F),它包含大约8个分支。 已经有几个(100s)提交来自其他贡献者的repo-O,以及repo-O的多个分支。 我现在想把这些变化拉进我的分叉回购(repo-F)。 我不能使用fork队列,因为有大约3000个提交可以通过,我宁愿从命令行执行此操作。
所以..我克隆了我的仓库,将repo-O添加为远程(上游)并获取更改,然后合并origin / upstream ...然后推回repo-F。
这似乎已将更改应用于主分支,但不应用于任何其他分支....
如何重复上述过程以便更新“所有”分支?
谢谢
您要完成的是“对于repo-o上的每个远程分支,如果我没有它,则创建指向repo-o分支的相同分支,或者从repo-上同一分支上的任何内容中获取本地分支上的信息o,并最终将所有这些分支推送到我的repo-f“。
假设你的遥控器真的名为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
对于所有“repo o branches”(由git branch -a
为“repo-o / branchname”,没有“spaces和'repo-o /'”部分),
git pull --rebase repo-o branchname
, git checkout
失败(因为你没有那个分支):签出一个以repo-o的分支名称命名的新分支,并将其指向repo-o的branchname。 品尝季节; 最好尝试一个新创建的repo-f
git克隆,并添加远程repo-o
,以防万一出错;)
awk版本与一些合并的treaks
sync_all_branch () {
git fetch upstream
for upstream_branch in $( git branch -a |awk 'BEGIN {FS="/"} $2=="upstream" {print $3}' ) ;
do
if git checkout $upstream_branch
then
echo merge $upstream_branch
git merge -s recursive -Xours upstream/$upstream_branch
else
echo create $upstream_branch
git checkout -b $upstream_branch upstream/$upstream_branch
fi
done
git checkout master
git push --all
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.