git - 在 git 中获取并不能获取所有分支

标签 git git-branch git-fetch

我克隆了一个存储库,之后其他人创建了一个新分支,我想开始处理它。我阅读了手册,它似乎非常简单。奇怪的是它不起作用,而且我发现的所有帖子都表明我在做正确的事。所以我要让自己受到抨击,因为这一定有明显的错误:

正确的操作似乎

git fetch
git branch -a
* master
  remotes/origin/HEAD --> origin/master
  remotes/origin/master
git checkout -b dev-gml origin/dev-gml

此时出现问题,由于某种原因git fetch后我看不到dev-gml远程分支。为什么不?如果我新克隆存储库,它就在那里,所以远程分支肯定存在:

$ mkdir ../gitest
$ cd ../gitest
$ git clone https://github.com/example/proj.git
Cloning into proj...
remote: Counting objects: 1155, done.
remote: Compressing objects: 100% (383/383), done.
remote: Total 1155 (delta 741), reused 1155 (delta 741)
Receiving objects: 100% (1155/1155), 477.22 KiB | 877 KiB/s, done.
Resolving deltas: 100% (741/741), done.
$ cd projdir
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev-gml
  remotes/origin/master

我已经尝试过 git updategit pullgit fetch --allgit pretty-please 在所有可能的排列中...

最佳答案

检查remote.origin.fetch设置时可以看到问题
(以 $ 开头的行是带有我键入的命令的 bash 提示符。其他行是结果输出)

$ git config --get remote.origin.fetch
+refs/heads/master:refs/remotes/origin/master

如您所见,在我的例子中,远程设置为专门且仅获取 master 分支。我按照下面的方法修复了它,包括检查结果的第二个命令。

$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
$ git config --get remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*

通配符 * 当然意味着该路径下的所有内容。

不幸的是我看到了this comment在我已经挖掘并通过反复试验找到答案之后。

关于git - 在 git 中获取并不能获取所有分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11623862/

相关文章:

node.js - 如何在 Windows 7 中安装和使用 Bower

git-branch - 有没有更好的方法来查明是否存在本地 git 分支?

Git merge after fetch - 究竟如何?

git - Elastic Beanstalk、Git 和 AWS 工具 : How to clone repository to another workstation

git - 列出给定远程 GIT 存储库和分支中的所有文件

java - JGit 创建新的本地分支并推送到远程(远程上不存在分支)

git - 如何显示分支无法访问的所有标记提交?

git - 具有多个本地跟踪分支的远程分支

git - Git中的FETCH_HEAD是什么意思?

git - git pull master 的问题与 origin master 不同步