以下是我用来签出特定提交的命令。
git clone git://repo.git/repo123
git checkout <commitID>
我想一步完成上述操作 - 仅使用 git clone 命令。
我想这样做的原因是,repo123 非常庞大。所以检查我想要的提交会为我节省很多时间。
我知道--depth
选项。但在这种情况下,它是没有用的。谁能告诉我该怎么做?
以下是我用来签出特定提交的命令。
git clone git://repo.git/repo123
git checkout <commitID>
我想一步完成上述操作 - 仅使用 git clone 命令。
我想这样做的原因是,repo123 非常庞大。所以检查我想要的提交会为我节省很多时间。
我知道--depth
选项。但在这种情况下,它是没有用的。谁能告诉我该怎么做?
git clone u://r/l --branch x
仍然克隆所有内容,但将本地 HEAD 设置为该分支,因此它是已检出的分支。
来源:
--branch <name>
-b <name>
不要将新创建的 HEAD 指向克隆存储库的 HEAD 指向的<name>
分支,而是指向分支。在非裸存储库中,这是将被检出的分支。--branch
还可以在结果存储库中的该提交处获取标签并分离 HEAD。
您的问题是结帐太大还是存储库本身?作为git clone
,克隆一个存储库,您通常会获得完整大小的整个存储库。(除非您按照您的建议进行浅层克隆。)
如果它真的是关于错误分支的结帐git help clone
说:
--no-checkout, -n
No checkout of HEAD is performed after the clone is complete.
克隆后-n
可以手动签出
我遇到了同样的情况,它与带有--depth
. 并在命令末尾使用-b
参数指定分支名称/提交/标签名称。
句法:
git clone --depth 1 github.com:ORG-NAME/Repo.git -b <Branch-Name/Commit-Number/TAG>
我认为您只是希望能够“走开”并在两个步骤完成后返回。我将此行用于一行上的两个长时间运行的命令——我喜欢“计时”整个操作。
诀窍是每个命令之间的分号。
$ time (git clone git://repo.git/repo123 ; git checkout <commitID>)