4

当 git clone 某个存储库时,它会从中检索所有分支:

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

将所有远程 git 分支跟踪为本地分支 ,但如果我无权访问 build1 目录怎么办?

此外,还有git ls-remote origin显示所有远程参考的命令,但是有没有什么优雅的方法可以检查远程分支的远程?

4

1 回答 1

1

在您克隆build1到后build2build1是,并且对build2是一无所知,这是“远程”分支所在的位置。一种解决方案可能是在. 添加一个远程调用:originbuild2https://github.com/android/platform_build.githttps://github.com/android/platform_build.gitbuild2github

git remote add github https://github.com/android/platform_build.git

然后运行 ​​afetch以获取远程分支:

git fetch github

现在,当您运行时,git branch -a您应该会看到前缀为remotes/github/that 的分支与前缀为remotes/originin 的分支相对应build1

另一方面,build2应该为 中的每个本地分支都有一个远程分支build1,包括那些从build1的角度跟踪远程分支的分支。例如,如果foo在 github 上有一个名为的分支,它将显示remotes/origin/foobuild1. 如果您设置了一个本地分支来跟踪该远程分支,build1也称为foo,那么build2也应该有一个remotes/origin/foo。然后,当通过从 github 获取/合并更改进行foo更新时,这些更改应显示在/之后。build1foobuild2fetchpull

于 2012-05-14T12:50:49.813 回答