在一个命令中完成git克隆和 checkout

elcex8rz  于 2022-11-20  发布在  Git
关注(0)|答案(5)|浏览(170)

下面是我用来 checkout 一个特定提交的命令。

git clone git://repo.git/repo123
git checkout <commitID>

我想用一个git clone命令一步完成以上操作。
我之所以要这样做是因为repo123非常大,所以检查出我想要的提交会保存我很多时间。
我知道--depth选项。但是在这种情况下,它是没有用的。谁能告诉我怎么做吗?

s2j5cfk0

s2j5cfk01#

git clone u://r/l --branch x

仍然克隆所有内容,但将本地HEAD设置为该分支,使其成为检出的分支。
资料来源:

**--分支 ****-b **不要将新创建的HEAD指向克隆仓库的HEAD所指向的分支,而是指向<name>分支。在非空仓库中,这是将被 checkout 的分支。--branch也可以接受标记,并在最终仓库中的该提交处分离HEAD。

mw3dktmi

mw3dktmi2#

您的问题是 checkout 太大还是 repository 本身?作为git clone,克隆一个仓库,您通常会得到整个仓库的完整大小。(除非您已经建议进行浅层克隆。)
如果真是关于结账的错误分支git help clone就说:

--no-checkout, -n
       No checkout of HEAD is performed after the clone is complete.

使用-n克隆后,您可以手动检出

hsvhsicv

hsvhsicv3#

我也遇到过同样的情况,它在Git Clone命令中使用--depth运行得很好。在命令末尾使用-b参数指定branch-name/commit/Tag-Name。
语法:

git clone --depth 1 github.com:ORG-NAME/Repo.git -b <Branch-Name/Commit-Number/TAG>
4dc9hkyq

4dc9hkyq4#

我 认为 您 只是 希望 能够 " 走开 " , 并 在 两 个 步骤 都 完成 后 返回 。 我 在 一 行 中 使用 这 一 行 来 表示 两 个 长 时间 运行 的 命令 - - 并且 我 喜欢 对 整个 操作 进行 " 计时 " 。
诀窍 在于 每个 命令 之间 的 分号 。

$ time (git clone git://repo.git/repo123 ; git checkout <commitID>)

中 的 每 一 个

lawou6xi

lawou6xi5#

这 是 一 个 老 问题 , 但 从 回答 和 评论 的 日期 来看 , 它 仍然 是 相关 的 , 所以 我 想 我 会 加上 我 的 几 分 钱 。
如果 你 想 克隆 的 提交 是 分支 的 一 个 小 部分 或者 是 一 个 标签 , 你 可以 - - 就 像 其他 答案 中 提到 的 那样 - - 做 :

git clone --depth 1 --branch <branch/tag name> <repository URL>

中 的 每 一 个
然而 , 如果 你 想 通过 SHA 克隆 提交 ( 如 问题 中 所 示 ) , 你 需要 运行 几 个 命令 :

mkdir -p <local repository directory>
cd <local repository directory>
git init
git remote add origin <repository URL>
git fetch --depth 1 origin <commit SHA>
git checkout FETCH_HEAD

格式
如果 您 必须 经常 执行 此 操作 , 则 可以 将 其 添加 到 函数/cmdlet 中 。
例如 在 Bash 中 :

git_clone_commit() {
    mkdir -p "$1"
    pushd "$1"
    git init
    git remote add origin "$3"
    git fetch --depth 1 origin "$2"
    git checkout FETCH_HEAD
    git submodule update --init --recursive
    popd
}

格式
然后 再

git_clone_commit <local repository directory> <commit SHA> <repository URL>

格式

相关问题