Git:从 master 以外的分支克隆
Posted
技术标签:
【中文标题】Git:从 master 以外的分支克隆【英文标题】:Git: Clone from a branch other than master 【发布时间】:2013-06-27 07:40:15 【问题描述】:我正在尝试从 Github 的存储库中提取。但我不想克隆主分支。我想克隆其他一些分支。当我尝试git clone <url>
时,我从主分支获取文件。我该怎么办?
另外,假设代码库中的代码已更新,我想获取最新的代码,是否应该再次使用 git clone
?因为项目规模巨大。另外,如果我在本地对项目进行更改,然后再次使用 git clone,我所做的更改还会存在吗?如果我不想进行更改怎么办?
我什至不确定git clone
是否是正确的命令。 git pull
或 git fetch
?
对不起,我对 git 很陌生。
【问题讨论】:
***.com/questions/1778088/… 【参考方案1】:试试这个:
git init
git fetch url-to-repo branchname:refs/remotes/origin/branchname
编辑
更好的解决方案:
git clone -b mybranch --single-branch git://sub.domain.com/repo.git
【讨论】:
我在 url-to-repo 之后没有得到该部分。我应该只提到分支名称吗?例如- git fetchgit fetch my_repo_url demo:refs/remotes/origin/demo
好的,谢谢。我试过git branch -l
并得到了所有的分支。我正在尝试第二种解决方案。
'--single-branch' 有什么作用?【参考方案2】:
git clone <url>
为每个分支克隆并创建远程跟踪分支。 如果您想查看可用的分支(克隆后),请键入
git branch -l
克隆后切换到特定分支:
git checkout <branchname>
其中 branchname 是分支的名称 :)
如果你想克隆并签出一个特定的分支
git clone -b <branchname> <url>
您提到的其他命令用于“更新”您当前的工作副本。 git pull
从远程存储库中获取所有更改并将它们合并,而 git fetch
仅获取它们而不合并。
【讨论】:
其实我觉得是git clone -b <branchname> <url>
感谢您的回答 :) 但我只能选择一个答案作为正确答案。我也不能赞成您的回答,因为它至少需要 15 个声望点。
幸运的是,git clone <url> -b <branchname>
的订单也可以。这对需求文件很有用。您可能在构建脚本中有while read; do git clone $REPLY; done < requirements.txt
。该文件中的大多数条目只是 URL,但您也可以将 -b <branchname>
添加到任何条目的末尾。
git clone -b git branch -l
!我检查了手册页。事实证明,只要您拨打git branch
,这就是默认设置,这是我一生都在做的事情。 -l
真的让我失望了。来自man git branch
:If --list is given, or if there are no non-option arguments, existing branches are listed
。【参考方案3】:
使用git clone --branch <name>
可能添加--single-branch
像往常一样,您可以通过git clone --help
阅读有关命令的详细信息
【讨论】:
【参考方案4】:如果您已经克隆了 repo 并希望为 master 以外的分支做出贡献,请执行以下操作:
$ git checkout --track origin/<branch-name>
当然,一定要指定正确的遥控器名称(上例中的origin)
此命令将创建一个新的本地分支,该分支将跟踪特定的远程分支。
【讨论】:
【参考方案5】:这里已经有一些答案了:
How do I clone a single branch in Git?
git clone --branch --single-branch []
git clone --single-branch
加号
【讨论】:
以上是关于Git:从 master 以外的分支克隆的主要内容,如果未能解决你的问题,请参考以下文章
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段