有一个裸遥控器(我们称之为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_origin
在branch_1
上“了解”新创建的分支group_origin
但是,当我git pull my_origin
之后的my_rep
和git log
之后的my_rep
时,我看不到branch_1
的任何通知。
所以,我的问题是:
如何更新my_rep
my_origin
(又是group_origin
的镜像)以获取新创建的group_origin/branch_1
分支?
答案 0 :(得分:1)
您应该在my_origin
为group_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_origin
,referenced 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