Checkout Bitbucket分支而不克隆主人

问题描述 投票:0回答:2

我正在从SVN切换到Bitbucket,在SVN我有分支的HTTP URL,我可以检查出那个分支。

我看到,如果Bitbucket的情况有点不同,通过克隆回购git clone <<<repo_url>>>,我可以检查该回购的主分支,然后使用git checkout <<branch name>>切换到该回购中的任何另一个分支。

但我不希望这个克隆repo并检查master的冗余步骤,我直接想要检查我需要的那个repo的非master分支。

但到目前为止我找不到任何解决方案,我无法克隆该分支,因为我从Bitbucket获得的克隆URL是repo。

有谁知道如何检查远程非主Bitbucket分支而不检查主数据?


It is not duplicate of this because as per answer of the question you have mentioned, in order to execute git clone <url> --branch <branch> --single-branch [<folder>] I need to be connected/configured with that repo, which means a pre-cloning. My question is about checking out a non-master branch without checking our / cloning the master,
git version-control bitbucket
2个回答
2
投票

但我不希望这个克隆repo并检查master的冗余步骤,我直接想要检查我需要的那个repo的非master分支。

那你可以做

git clone <url> --branch <branch> --single-branch [<folder>]

如您所链接的答案中所述。

它与此不重复,因为根据您提到的问题的答案,为了执行git clone <url> --branch <branch> --single-branch [<folder>],我需要连接/配置该repo,这意味着预先克隆。

不,不需要“预先克隆”。您引用的命令就像裸git clone命令一样进行克隆。区别在于--branch允许您指定哪个分支开头,就像您要求的那样。

也不需要任何以前与远程仓库的“连接”。在命令中指定URL会创建连接。


2
投票

它是由svn和git之间的差异引起的。

  • 对于svn repo,所有分支都存在于同一工作目录中,因此您可以通过http://svn-repo/branchname获取分支。
  • 而对于git repo,所有分支都是平行存在的。这意味着根据不同的分支机构进行不同的直接变更。当HEAD指向某个分支时,工作目录将只包含属于该分支的文件。因此,您无法在repo URL(作为svn)之后添加分支名称,但需要将分支签出到工作目录。

而对于git clone <repo URL>HEAD默认指向默认(主)分支。在大多数情况下,默认(主)分支是master分支。

如果你希望HEAD在克隆git repo后立即指向另一个分支(没有git checkout命令),你可以更改默认(主)分支。

如果你想将主分支从master更改为o1,你可以在bitbucket中设置如下:

在bitbucket repo - > settings - > Repository details - >选择Main分支为o1 - > Save repository details。

enter image description here

然后你也可以在你的bitbucket repo分支中找到o1分支现在是主分支。

enter image description here

现在当您克隆repo时,当前分支始终是o1分支。

© www.soinside.com 2019 - 2024. All rights reserved.