你要完成什么是“关于回购-O每个远程分支,创建同一个分支指向回购-O的分支,如果我没有它或拉从本地分支信息无论是在repo-o的同一分支上,并最终将所有这些分支推向我的回购-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
对于所有的“回购Ø分支”(由git branch -a
为“回购O/BRANCHNAME所示”,没有‘空间和‘回购-O /’’的一部分),
- 尝试检出的分支和做
git pull --rebase repo-o branchname
里面,
- 或者如果
git checkout
失败(因为您没有该分支):签出以repo-o的分支名称命名的新分支,并将其指向repo-o的branchname。
- 如果上述两项中的任何一项成功,则将新创建或更新的分支名称推送到您的repo-f。
季节的味道;对repo-f
新的git克隆最佳试图用添加到它的远程repo-o
,以防万一出问题;)
非常感谢,这是有道理的。 ..我希望有一种方法可以让git自动合并所有分支,但是这个脚本看起来好像有用。谢谢 – mrwooster 2010-12-02 10:16:04