当git克隆一些存储库时,它会从中检索所有分支:
git clone https://github.com/android/platform_build.git build1
cd build1/ && git branch -a && cd ..
然后,当我使用build1
作为镜像并克隆它时,我看不到它的所有远程分支(我只看到build1
的本地主分支)
git clone build1 build2
cd build2 && git branch -a && cd ..
如何查看远程分支的远程?
我知道我可以使用命令
检出build1镜像中的所有远程分支cd build1 && for remote in `git branch -r `; do git branch --track $remote; done
Track all remote git branches as local branches 但是,如果我无法访问build1目录呢?
此外,还有git ls-remote origin
命令显示所有远程引用,但是有没有优雅的方法来检查远程分支的远程?
答案 0 :(得分:1)
将build1
克隆到build2
后,build1
为build2
的{{1}},origin
对build2
一无所知},这是“远程”分支所在的地方。一种解决方案可能是在https://github.com/android/platform_build.git
的配置中将https://github.com/android/platform_build.git
添加为远程。添加名为build2
的遥控器:
github
然后运行git remote add github https://github.com/android/platform_build.git
以获取远程分支:
fetch
现在,当您运行git fetch github
时,您会看到前缀为git branch -a
的分支与remotes/github/
中以remotes/origin
为前缀的分支相对应。
另一方面,build1
应该为build2
中的每个本地分支设置一个远程分支,包括那些从build1
角度跟踪远程分支的分支。例如,如果github上有一个名为build1
的分支,它将在foo
中显示为remotes/origin/foo
。如果您设置一个本地分支来跟踪build1
中也称为build1
的远程分支,那么foo
也应该有build2
。然后,当remotes/origin/foo
通过从github的foo
获取/合并更改在build1
中更新时,这些更改应在foo
/ {{后build2
中显示1}}。