1

有一个裸遥控器(我们称之为group_origin)。
我制作了它的裸镜像克隆(my_origin)。
git clone my_origin到带有工作目录 ( my_rep) 的存储库。
my_repI 代码中,推入my_origin和拉出my_origin.

group_origin我的同事更新时,我 git fetch my_originfrom group_origin.
我看到了那种标签group_origin/branch_1(当我在git log里面执行时my_origin)。因此,my_origin“意识到”新创建的分支branch_1group_origin.
但是,当我git pull my_origin从内部my_rep和之后,我没有看到任何通知。git logmy_repbranch_1

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

4

1 回答 1

1

您应该my_origin为来自group_origin.

为此,我使用问题“将所有远程 git 分支跟踪为本地分支”中的单行代码。

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由其 引用symbolic-ref HEAD)。
而且,反过来,my_rep将只看到一个分支。


另一种选择是将远程添加到本地存储库,以直接my_rep进行监控。 (您可以添加您想要或需要的任意数量的远程上游存储库,只是为了查看它们的历史记录)group_origin

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
于 2013-10-10T13:36:33.137 回答