我克隆了一个存储库,之后其他人创建了一个新的分支,我想开始工作。我看了说明书,好像非常简单。奇怪的是,这并没有起作用,我找到的所有帖子都表明我在做正确的事情。所以我要让自己接受抨击,因为这肯定有什么明显的问题:

正确的做法似乎是

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在所有可能的排列中……


当前回答

所有你需要做的是,应用以下2个命令:

git fetch --all

一旦你看到了分支(在osc_at_works之前是不可见的),选择它并按如下方式签出:

git checkout origin/team/Enterprise/osc_at_works

其他回答

我有一个类似的问题,但是在我的情况下,我可以拉/推到远程分支,但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/*

我不得不进入我的GitExtensions远程存储库,因为这里似乎什么都不能工作。在那里,我看到两个分支没有配置远程存储库。调整后的效果如下所示

注意,分支noExternal3仍然显示没有远程存储库。不确定bash命令的哪个组合可以找到或调整它。

远程更新

你需要逃离

git remote update

or

git remote update <remote> 

然后你可以运行git branch -r来列出远程分支。

签出一个新分支

跟踪一个(新的)远程分支作为一个本地分支:

git checkout -b <local branch> <remote>/<remote branch>

或者(有时没有额外的遥控器就不能工作/):

git checkout -b <local branch> remotes/<remote>/<remote branch>

他们会付钱给你的

Git小抄(我个人的最爱) 关于git的一些注意事项 Git备忘单(pdf)

Git签出-跟踪原始/格式似乎可以做到:

% git branch      ### show local branches
* main

% git branch - a  ### show local and remote branches
* main
  remotes/origin/HEAD -> origin/main
  remote/origin/formats
  remote/origin/main

% git checkout --track origin/formats
Switched to a new branch 'formats'
Branch 'formats' set up to track remote branch 'formats' from 'origin'

% git branch
* formats
  main

下面应该做同样的事情,但使用不同的本地分支名称:

git checkout -b my-formats origin/formats 

git c2.23中提供了一个新的语法git开关

git switch -c <branch> --track <remote>/<branch>

所有你需要做的是,应用以下2个命令:

git fetch --all

一旦你看到了分支(在osc_at_works之前是不可见的),选择它并按如下方式签出:

git checkout origin/team/Enterprise/osc_at_works