Git 当有多个远程分支时,如何获取新的远程分支?

Git 当有多个远程分支时,如何获取新的远程分支?,git,Git,我有一个3个远程存储库的设置,源、内部、外部。 当我创建这些设备的新本地安装时,我克隆了origin并将内部和外部作为远程设备添加 当我这样做时,原点上会显示新的远程分支 git fetch——全部 但在内部和外部,它们似乎都不是从服务器获取的(尽管我看到服务器被联系和查询) 我也尝试过git远程内部更新,但没有任何运气 使用git ls remote internal,我可以看到任何新创建的远程分支,但无法克隆它们(可能是因为有关分支的信息尚未提取到本地存储库) 搜索互联网,我发现了这篇博客文

我有一个3个远程存储库的设置,源、内部、外部。 当我创建这些设备的新本地安装时,我克隆了origin并将内部和外部作为远程设备添加

当我这样做时,原点上会显示新的远程分支 git fetch——全部 但在内部和外部,它们似乎都不是从服务器获取的(尽管我看到服务器被联系和查询)

我也尝试过git远程内部更新,但没有任何运气

使用git ls remote internal,我可以看到任何新创建的远程分支,但无法克隆它们(可能是因为有关分支的信息尚未提取到本地存储库)

搜索互联网,我发现了这篇博客文章,它描述了同样的问题,并用自定义脚本解决了它

当您使用最新的git版本克隆新的git存储库时,默认情况下,git将创建一个包含所有远程分支的.git/remotes/origin。此文件列出了在获取时要更新的所有远程分支

随着时间的推移,远程可能会获得更多分支,并且可能需要更新远程分支列表。找到远程可用的方法是调用git ls remote origin,然后选择感兴趣的分支,并将它们添加到.git/remotes/origin文件中

为什么git fetch--all不使用新的分支更新.git/remotes/[remote\u name]文件?
真的没有办法用普通的git命令更新吗?

我找到了另一篇文章[1]:这篇文章让我在git配置中查找我的设置。出于某种原因,我设法让远程服务器只跟踪主分支,而不是远程服务器的默认glob refspec(在refs/remotes/remote\u name/namespace下)

git fetch internal --all
git fetch external --all
所以我的配置看起来像这样

[remote "internal"]
    url = path_to_my_remote_repo
    fetch = +refs/heads/master:refs/remotes/internal/master
把它改成这个

[remote "internal"]
    url = path_to_my_remote_repo
    fetch = +refs/heads/*:refs/remotes/internal/*

为我解决了这个问题。

fatal:fetch--all不接受存储库参数
git fetch-all
应该可以工作,并且可以在本地为我工作(我配置了15个远程设备)。您确定
内部
外部
包含您认为它们的功能吗?您使用什么命令来“克隆”失败的对象?谢谢Christopher。知道某些东西是否应该与所讨论的设置一起工作总是令人放心的。然后,您至少可以确定这只是一个用户问题。