Atlassian SourceTree为什么没有显示远程分支?

34

我正在Windows上运行SourceTree 1.6.11。我克隆了一个Git仓库,但它不显示我的远程分支:

输入图像描述

SourceTree只显示本地分支吗?

尽管如此,它仍然显示所有标签。

11个回答

43

我发现可以使用以下步骤来检出一个远程分支:

仓库 > 检出 > 检出新分支 > 检出远程分支 [选择要检出的远程分支]

我所选的分支现在显示在左侧菜单的分支下面,(虽然还没有出现在顶部的分支下拉框中)。

希望这可以帮到您。


15

我遇到了这个问题,这里的任何解决方案都对我没用。 我成功的方法是,在我的SourceTree存储库中,按下“设置”按钮以获取存储库设置对话框。 然后按下“编辑配置文件”按钮,打开配置文件。 然后将[remote “origin”]下的fetch行更改为此内容,保存文件,然后获取远程分支就出现了。

fetch = +refs/heads/master:refs/remotes/origin/master

之后:

fetch = +refs/heads/*:refs/remotes/origin/*

1
运行得非常好。在Sourcetree中应用上述解决方案,然后再次点击获取。 - Chris Aelbrecht
1
这个方法很管用!其他的解决方案都对我没用。谢谢! - Pointi

12

这是一篇旧帖子,但我认为其他人也可能遇到同样的问题。在2015年10月,我在Source Tree中遇到了这个问题,并且我的新远程分支是在另一台机器上创建的,但在我的工作机器上的SourceTree中没有显示出来。我可以通过命令行和BitBucket网站看到我的远程分支,但在SourceTree中却没有。

无论如何,十分钟后我的远程分支就出现了。

然后我发现,在选项中有一个设置可以刷新远程分支,而惊讶的是它被设置为每10分钟刷新一次。

此外,还可以用 ALT+SHIFT+R 立即刷新。

希望这能帮助到某些人。

Dave


1
谢谢你!顺便说一下,在Mac上使用SourceTree,立即刷新远程分支的快捷键是CTRL+ALT+R。 - dbeachy1

8
我的解决方案很简单。只需要使用命令行并执行以下命令:
git branch -r

and

git branch -a

为了确保您在本地拥有所有的远程分支,请检查那些未在sourcetree中显示的分支。当您将这些分支检出时,它们将在sourcetree中显示。
例如,在执行完以下操作之后:
git checkout develop

您的开发分支将会在Sourcetree中显示。


大多数来到这个问题的人都知道如何在命令行上完成,他们特别对Sourcetree感兴趣。 - Patrick Bard

7
在一些尝试和错误之后,我找到了解决方法,具体步骤如下:
  • 复制远程路径
  • 在仓库设置中删除远程
  • 让项目在 SourceTree 中刷新
  • 重新添加远程,在仓库设置中
  • 执行 Fetch 操作
对于每个出现此问题的仓库,仅仅执行 Fetch 操作似乎并不能解决问题(它可以解决其中一些仓库的问题)。
扩展信息:
问题的关键在于本地仓库如何跟踪远程仓库。对于那些无法仅通过 Fetch 操作解决的仓库,运行 `git branch -r` 命令将没有任何输出。在我成功查看这些分支之后,我确认了 `git branch -r` 命令的输出,即我期望的远程分支的 HEAD、master 和 develop 分支。

很奇怪,我的同事刚遇到了同样的问题,而我已经尝试过删除和重新添加远程仓库,但重要的部分似乎是关闭仓库设置窗口并让SourceTree进行一次刷新,然后再次打开设置并添加远程仓库。 - germankiwi

7

我曾经遇到同样的问题,刷新没有起作用。所以我手动从远程获取了代码。

只需运行此命令并重新启动Sourcetree。

git fetch --all

3

SourceTree会显示远程分支。看起来你的远程仓库只有一个分支master。比较一下git branch -r的输出,它会列出所有的远程分支。如果你的远程副本没同步,尝试执行git fetch


不,有大约30个分支,我可以使用git show-ref列出它们,但是我认为在SourceTree中它们没有显示出来很奇怪/有bug。 - u123
如果它们存在,它们应该显示出来。你能给我们展示 git branch -r 的输出吗? - flyx

1

这可能不是你的问题,但在某些搜索查询中很容易出现这种情况。

确保在远程存储库上执行fetch。这可能会解决问题。


0

我遇到了这个问题,后来发现我试图推送的仓库并没有分配给我作为团队成员的权限。我的管理员将该仓库移动到我们的团队中,问题得以解决。


0

我已经尝试了不同的方法,比如升级源代码树、重启、清除缓存和其他所有的方法。但是对我来说都没有用。然而,下面的步骤解决了我的问题。看起来像是源代码树的一个已经被多次报告过的 bug。

  • 从 Source Tree 中打开终端
  • 使用当前分支名称编写以下命令
  • git push --set-upstream origin #BRANCHNAME

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接