如何获取所有远程分支,"git fetch --all"不起作用



我已经查阅了类似问题的其他题目。

但他们似乎说答案是git fetch --all

但在我的情况下,它不起作用。

这就是我为它所做的。

> git branch
* master
> git branch -r
origin/master
origin/A
> git fetch --all
> git branch 
* master        #still not updated
> git fetch origin/A
fatal: 'origin/A' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
> git fetch remotes/origin/A
fatal: 'origin/A' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

我也尝试了git pull --all,但结果是一样的。

------------------- 编辑 -------------------

> git pull --all
Already up-to-date.
> git branch 
* master              # I think it should show branch A also
> git remote show origin
 HEAD branch: master
 Remote branches:
   A      tracked
   master tracked

------------------- 编辑 -------------------

> git pull origin A
 * branch            A       -> FETCH_HEAD
Already up-to-date.
> git branch 
* master                   # I think it should show barnch A also

git branch只显示本地分支。git branch -r将显示远程分支,正如您自己所看到的。

git branch
*master
git branch -r
origin/master
origin/A

git fetch --all将更新您在输入git branch -r时看到的列表,但它不会创建相应的本地分支。

你要做的是签出分支。这将生成远程分支的本地副本,并将上游设置为remote。

git checkout -b mylocal origin/A
git branch
master
*mylocal
git branch -r
origin/master
origin/A

mylocal在本例中是origin/A。如果分支不存在,则-b参数将创建该分支。你也可以直接输入:git checkout A will will auto-name new branch

我想你真正要找的是git branch -a命令。它将显示所有本地和远程分支。下面是一个例子:

# Only show local branches
$ git branch
* master
  develop
# Only show remote branches
$ git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/develop
  origin/foo
# Show both local and remote branches
$ git branch -a
* master
  develop
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/develop
  remotes/origin/foo

你会注意到所有的分支都在那里——命令将显示本地和远程分支。

foo分支仅在远程上存在,我没有本地foo分支。要创建本地foo分支,我将使用checkout命令:

# Create a local 'foo' branch from the remote one
$ git checkout foo
Branch foo set up to track remote branch foo from origin.
Switched to a new branch 'foo'
# Show both local and remote branches
$ git branch -a
* foo
  master
  develop
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/develop
  remotes/origin/foo

这应该能解释你在本地看到的东西

您还需要在本地创建获取的分支:

git fetch --all && git checkout A

相关内容

  • 没有找到相关文章

最新更新