【发布时间】:2012-08-07 07:04:38
【问题描述】:
我有一个包含 3 个远程存储库的设置,即原始存储库、内部存储库、外部存储库。 当我创建一个新的本地安装时,我克隆源并将内部和外部添加为远程。
当我这样做时,会显示原点上的新远程分支 git fetch --all 但在内部和外部,它们似乎没有从服务器获取(尽管我看到服务器已被联系和查询)。
我也尝试过 git remote update internal 没有任何运气。
使用 git ls-remote internal 我可以看到任何新创建的远程分支,但我无法克隆它们(可能是因为有关分支的信息尚未提取到我的本地存储库)。
在互联网上搜索我发现这篇博文http://www.jukie.net/bart/blog/fetch-all-git-branches 描述了同样的问题并使用自定义脚本解决了它。
当您使用最近的 git 版本克隆一个新的 git 存储库时,默认情况下 git 将创建一个包含所有远程分支的 .git/remotes/origin。该文件列出了在一次提取时要更新的所有远程分支。
随着时间的推移,远程可能会获得更多分支,并且可能需要更新远程分支列表。找出远程可用的方法是调用 git-ls-remote origin,然后挑选出感兴趣的分支,并将它们添加到 .git/remotes/origin 文件中。
git fetch --all 为什么不使用新的分支更新 .git/remotes/[remote_name] 文件? 真的没有办法用普通的git命令来更新吗?
【问题讨论】:
-
git fetch -all应该可以工作,并且可以在本地工作(我有 15 个已配置的遥控器)。你确定internal和external包含你认为他们做的事情吗?您使用什么命令“克隆它们”失败了? -
谢谢克里斯托弗。知道某些东西是否应该与所讨论的设置一起工作总是令人放心的。那么你至少可以确定这只是一个用户问题。
标签: git