使用深度 1 选项进行克隆时 git checkout 新的远程分支

Gab*_*vay 5 git branch git-clone git-remote

在我克隆了一个存储库后,一个新分支test已添加到origin远程。但我仍然看到:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

我应该使用什么 git 命令来获得以下输出:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test
Run Code Online (Sandbox Code Playgroud)

git checkout 远程分支问题不是我的问题,因为这是在我看到所有远程分支引用之后发生的。

我无法再次克隆该存储库,因为其中有本地更改/提交。

那么,如何使用 git 命令将新的远程分支引用引入我的存储库?

我正在使用具有以下分支的 BitBucket 存储库:分支机构


试炼

git fetch不起作用:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
$ git fetch
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
$ git fetch origin 
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 4

简单的git fetch应该就够了。

这会将原始/测试带到您的存储库中。

然后 agit checkout -b test origin/test将在本地声明该分支。


OP Gabriel Petrovay确认(在评论中)问题的根源:

git 配置文件略有变化。

  • 在新克隆的存储库[remote "origin"]fetch = +refs/heads/*:refs/remotes/origin/*
  • 但旧的回购协议有fetch = +refs/heads/master:refs/remotes/origin/master

我感觉这就是问题所在。

真的是。

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
Run Code Online (Sandbox Code Playgroud)

那应该可以解决它。