使用 git 获取特定分支

使用 git 获取特定分支

我想从以下网站下载源代码主-下一个分支按照中所述使用 git赛灵思维基

我试过这个:

#git clone git://github.com/Xilinx/u-boot-xlnx/tree/master-next.git

Initialized empty Git repository in /home/Hannan/master-next/.git/
fatal: remote error:
Xilinx/u-boot-xlnx/tree/master-next is not a valid repository name
Email [email protected] for help

即使这样也失败了:

# git clone git://github.com/Xilinx/tree/master-next/u-boot-xlnx.git
Initialized empty Git repository in /home/Hannan/u-boot-xlnx/.git/
fatal: remote error:
Xilinx/tree/master-next/u-boot-xlnx is not a valid repository name
Email [email protected] for help

有效的命令是:

 git clone git://github.com/Xilinx/u-boot-xlnx.git

但我怎么知道这确实会获取主-下一个分支而不是主分支?如何使用 git 正确获取特定分支?

我使用的是 RHEL 6,通过 PuTTY 访问。

答案1

就像错误消息告诉您的那样,git clone需要一个 git 存储库。您不能像这样在路径中“添加”分支的名称。看git 中的分支

您可以克隆单个分支(及其历史记录): git clone <url> --branch <branch> --single-branch

git help clone

但是您运行的克隆命令为您提供了整个存储库的副本,您可以使用 来查看现有分支git branch以及有关它们的更多详细信息git show-branch

使用 切换到您想要的分支git checkout branch-name

该书的第一章专业版 Git书籍(在线提供)提供了有关基本命令的更多详细信息。

答案2

这个命令应该有效:

$ git fetch origin [branch]

上面的命令仅从远程存储库获取元数据,它不合并源。

如果你想获取并合并源,它应该是:

$ git pull origin [branch]

请小心执行合并命令的分支。该分支将是合并源的地方。

#更新# 语法检查/重写

答案3

git 存储库包含所有分支(但经过压缩,只有差异,因此很少出现大小问题)。

因此,您可以像成功完成一样克隆整个项目。这是获取存储库的标准方法,即使您只对一个分支感兴趣。

.git 结构将包括全部在该存储库上完成的分支。

要使用特定分支,请执行以下操作:git checkout [branch_name] 如果分支存在,则文件将在本地可用(即项目目录中的当前文件)。

git status然后将显示哪个分支是当前分支,例如:

根据 Leiaz 的说法,人们可以克隆一个特定的分支。在实践中,我从未这样做过或见过其他人使用它。经过进一步研究,我发现它相对较新,在 git 1.7.10(2012 年 4 月)中添加:“git clone learnt --single-branch”选项限制克隆到单个分支(惊讶!);不会获取未指向分支历史记录的标签。例如:

git clone -b master-next --single-branch git://github.com/Xilinx/

在此输入图像描述 在这里,对于我的“链接器”应用程序,我正在检查分支v3.0.10

相关内容