【问题标题】:Git pull/clone a branchGit拉/克隆一个分支
【发布时间】:2014-10-17 10:28:26
【问题描述】:

我只需要从一个特定的分支获取文件。我尝试了几个命令,但它最终拉出了整个 repo,而不仅仅是我需要从特定分支拉到目录的几个文件。

git 版本 1.7.1

【问题讨论】:

  • git clone git@bitbucket.org:name/name.git -b mv_LookbookAddition --single-brancherror: unknown option `single-branch' 结尾

标签: git bitbucket


【解决方案1】:

如果您收到以下错误:

git clone git@bitbucket.org:name/name.git -b mv_LookbookAddition --single-branch

这意味着您需要 1.7.10+(2012 年 6 月),使用 Linux, a ppagit-scm.com/download/mac 对于 Mac。

但是您将获得分支的完整历史记录(如果该分支是从 master 创建的,您将从 master 获得所有提交,直到分支启动,加上分支提交)

您可以尝试结合 --depth 选项仅从分支中获取最后一次提交

git clone git@bitbucket.org:name/name.git -b yourBranch --single-branch --depth 10

这将使您的克隆仓库成为浅仓库,这就是您想要git 2.0+ (because you can create commits and push back, from your shallow repo) 的原因。

请参阅 explainshell.com

【讨论】:

  • 如果我使用更新的 Git 版本执行此操作,它将克隆整个 repo,而不是我指定的分支。
  • @nicoX 我确认它只会克隆选定的分支。您使用的是什么操作系统和什么版本的 Git?
  • 在我的 Ubuntu 13.10 上使用 git 版本 1.8.3.2 进行了最新测试。我的分支在 Bitbucket 上,它没有与 master 分支合并。
  • @nicoX 克隆单个分支意味着获取从该分支可访问的所有提交,一直到第一个:您只能克隆一个分支,但您将获得其完整历史记录。同样,一切都按预期工作。
  • @nicoX 您可以尝试(正如我解释编辑后的答案)添加--depth n,以便仅获得最后的n 提交:这将更接近您正在查看的内容。
猜你喜欢
  • 2021-06-26
  • 1970-01-01
  • 2022-01-20
  • 2017-06-17
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多