我是Git的新手,我真的很困惑。我有一个来自我的github的HTTPS,我正在使用虚拟机中的终端尝试从我的一个分支机构中提取最新文件。
每次我使用以下命令:
git pull http-link或git clone http-link它只从主分支中提取文件,而不是所有分支。我知道这个,因为当我运行git branch时,我只看到master分支,而不是我在github中的develop分支。我想要来自这个开发分支(非主)的文件,所以我可以在更改为master之前将更改推送到该分支。请指教。
它只从主分支中提取文件,而不是所有分支
pull
的规则在某种程度上依赖于配置,但我可以告诉你,当你clone
它正在获取整个历史(所有分支),除非你给它特定的选项告诉它不要(如--single-branch
)。
我知道这个,因为当我运行git branch时,我只看到主分支
这是因为默认情况下,git branch
列出了本地分支,而不是远程(s)中的每个已知分支。你可以说
git branch -a
看其余的。他们会出现像这样的名字
remotes/origin/branch-name
因为你所拥有的不是合适的分支;相反,这些是一些“书签”,告诉你遥控器分支的位置,最后你从遥控器取出的时间。
默认情况下,克隆不会自动为远程上的每个分支创建本地分支(但它确实会获取分支)。默认情况下,克隆会检出远程的默认分支(在本例中为master
),为其创建本地分支。并且有一些内置于git的快捷方式,可以说,在具有单个遥控器的典型配置中
git checkout branch-name
创建对应于远程branch-name
分支的本地分支。
请注意,当您执行此初始结帐时,您不想说
git checkout remotes/origin/branch-name
因为那样做了别的。这不仅仅是创建本地分支,而是简单地将您置于“独立的HEAD
”状态,HEAD
与远程分支在同一个提交中。