Git可以从远程仓库的远程跟踪分支获取吗?

5
通常,git fetch 命令的源是远程仓库的 ref/heads/*。但是,是否允许从远程跟踪分支即远程仓库的 ref/remotes/* 进行获取?

2
你想从除了源之外的远程获取吗? - Patrick Lee
2个回答

6
当然可以!一个“正常”的获取操作是git fetch origin refs/heads/*:refs/remotes/origin/*。这个命令告诉当前仓库连接到origin,获取refs/heads/*列表并将引用存储在本地的refs/remotes/origin/中。
你可以调整此命令以获取origin:refs/remotes/*,方法如下:git fetch origin refs/remotes/*:refs/remotes/origin/*
值得注意的是,这取决于你对远程主机的了解程度:你会得到在你所引用的远程主机中配置的远程名称,但你不会得到有关该远程主机的详细信息。换句话说,你可能会看到一个新的条目refs/remotes/origin/origin/master,但如果你不知道origin/origin的真实含义,那么它实际上在跟踪什么内容就成了一个谜。

虽然您不知道远程跟踪分支在跟踪什么,但这只意味着您“双倍不知道”该分支的内容。也就是说,如果远程的“origin/master”是某个未知物,那么对应的本地“master”是带有本地修补程序的未知物,目前可能会进一步分歧。 - Kaz

0
远程跟踪分支,即远程存储库的ref/remotes/*,是否不允许获取?
可以的。
Git不关心源代码来自哪里。您可以同时从不同的分支和来源获取、拉取和合并。
考虑以下情况:
您有一个大型项目,在该项目中,您有几个分包商正在处理同一项目,但每个人都在不同的路径中更改代码。
完成工作后,您需要将所有内容合并为一个大型项目。
如何操作?
git merge origin1/A origin2/B origin3/3 ... originN/N

再次强调,Git 不关心内容来自哪里。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接