通过它的镜像裸遥控器从远程拉出所有分支

时间:2013-10-10 13:17:39

标签: git

有一个裸遥控器(我们称之为group_origin) 我做了一个裸镜子(my_origin) 我git clone my_origin到一个带有工作目录(my_rep)的存储库 在my_rep我代码中,请转到my_origin并从my_origin拉。

当我的同事更新group_origin时,我会从my_origin获取group_origin
我看到group_origin/branch_1种类的标签(当我在git log内执行my_origin时)。因此,my_originbranch_1上“了解”新创建的分支group_origin 但是,当我git pull my_origin之后的my_repgit log之后的my_rep时,我看不到branch_1的任何通知。

所以,我的问题是:
如何更新my_rep my_origin(又是group_origin的镜像)以获取新创建的group_origin/branch_1分支?

1 个答案:

答案 0 :(得分:1)

您应该在my_origingroup_origin的每个分支创建跟踪分支。

为此,我使用问题“that one-liner”中的Track all remote git branches as local branches

remote=origin ; for brname in `git branch -r | grep $remote | grep -v master | grep -v HEAD | awk '{gsub(/[^\/]+\//,"",$1); print $1}'`; do git branch --set-upstream-to $brname  $remote/$brname ; done

否则,默认情况下,my_origin只会声明一个分支(group_originreferenced by its symbolic-ref HEAD中的默认分支)。
反过来,my_rep只会看到一个分支。


另一个选项是将遥控器添加到您的本地仓库my_rep,以便直接监控group_origin
(您可以添加您想要或需要的远程upstream repos,只是为了查看他们的历史记录)

cd my_rep
git remote add group_origin /url/to/group_origin
git fetch group_origin

这样,您就会看到group_origin/branch_x,并可以决定创建一个并将其推送到my_origin

git checkout --track -b branch_x group_origin/branch_x