git桌面客户端不显示所有远程分支

时间:2016-01-21 17:44:31

标签: git

我的理解是这两个命令应该向我显示所有远程分支

git branch -a
git branch -r

但是当我执行这两个命令时,我没有看到最近创建的分支。

我可以在Web用户界面中看到此分支。但不是在git branch -a

即使我可以在Web UI中看到这个分支。当我尝试做的时候

git branch --set-upstream-to = origin / feature / branch feature / branch它

error: the requested upstream branch 'origin/feature/branch' does not exist

有趣的是,如果我删除我的本地目录并再次执行git clone,那么它可以看到新的分支。

有谁知道为什么git命令行客户端看不到新的分支?

3 个答案:

答案 0 :(得分:2)

Git只能通过非常具体的命令通过网络进行通信。否则,它使用任何远程存储库的本地缓存副本。当您运行git branch -r时,正在检查此本地缓存。 origin/feature/branch是本地缓存中的“远程跟踪分支”。所以你的本地遥控器副本已经过时了。

要更新,请运行git fetch [remote-name]。这是一个完全安全的操作,不会影响您的本地分支,它只会使您的本地缓存与远程同步。 git pull也会更新,因为它基本上是git fetch加上git merge,但您必须担心合并。

答案 1 :(得分:1)

在@Schwern上回答一下。几乎Git中的每个操作都是本地的。除非告诉它永远不会检查远程更改。您的本地副本有一个存储在.git文件夹中的数据库。当您运行git branch -a之类的命令时,它会检查本地数据库而不是远程数据库。

这就是为什么每当远程更改时,您需要更新此本地数据库以获取最新更新,git fetch执行此操作。它只更新你的本地git db而不对代码本身进行任何修改。

答案 2 :(得分:-2)

这经常发生在我身上。要解决,我只运行git pull,因此git会发现新的分支。