我克隆了一个存储库,之后其他人创建了一个新的分支,我想开始工作。我看了说明书,好像非常简单。奇怪的是,这并没有起作用,我找到的所有帖子都表明我在做正确的事情。所以我要让自己接受抨击,因为这肯定有什么明显的问题:
正确的做法似乎是
git fetch
git branch -a
* master
remotes/origin/HEAD --> origin/master
remotes/origin/master
git checkout -b dev-gml origin/dev-gml
在这一点上有一个问题,由于某种原因,在git获取后,我无法看到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 update, git pull, git fetch——所有的,git pretty-please在所有可能的排列中……
这个问题可以在检查remote.origin.fetch设置时看到
(以$开头的行是带有我输入命令的bash提示符。其他行是结果输出)
$ git config --get remote.origin.fetch
+refs/heads/master:refs/remotes/origin/master
如您所见,在我的例子中,远程被设置为专门且仅获取主分支。我按照下面的方法修复了它,包括检查结果的第二个命令。
$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
$ git config --get remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*
通配符*当然是指路径下的所有东西。
不幸的是,我看到这条评论时,我已经通过反复试验找到了答案。
这个问题可以在检查remote.origin.fetch设置时看到
(以$开头的行是带有我输入命令的bash提示符。其他行是结果输出)
$ git config --get remote.origin.fetch
+refs/heads/master:refs/remotes/origin/master
如您所见,在我的例子中,远程被设置为专门且仅获取主分支。我按照下面的方法修复了它,包括检查结果的第二个命令。
$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
$ git config --get remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*
通配符*当然是指路径下的所有东西。
不幸的是,我看到这条评论时,我已经通过反复试验找到了答案。
我有一个类似的问题,但是在我的情况下,我可以拉/推到远程分支,但git状态没有显示本地分支状态w.r.t远程分支。
此外,在我的情况下,git config——get remote.origin.fetch没有返回任何东西
问题是在相应远程块的获取行中的.git/config文件中有一个拼写错误。可能是我之前错误添加的(有时我直接查看这个文件,甚至编辑它)
因此,检查。git/config文件中的远程条目是否正确,例如:
[remote "origin"]
url = https://[server]/[user or organization]/[repo].git
fetch = +refs/heads/*:refs/remotes/origin/*