我是Git的新手,我真的很困惑。我有一个来自我的github的HTTPS,我正在使用虚拟盒中的终端尝试从我的一个分支机构中提取最新文件。
每次我使用以下命令:
git pull http-link 或 git clone http-link 它只从主分支中提取文件,而不是所有分支。我知道这个,因为当我运行 git branch 时,我只看到主分支,而不是我在github中的开发分支。我想要来自这个开发分支(非主)的文件,所以我可以在更改为master之前将更改推送到该分支。请指教。
答案 0 :(得分:1)
它只从主分支中提取文件,而不是从所有分支中提取
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
与远程分支在同一提交中。