我在.repo的清单文件中看到了以下一行。 如何使用manifest.xml中的git命令执行相同的操作? 我想知道如何运行克隆' git clone'具体修订和深度= 1。
<project clone-depth="1" groups="pdk-cw-fs,pdk-fs" name="repository name" path="repository path" revision="SHA1"/>
答案 0 :(得分:2)
如果revision
是分支(refs/heads/xxx
)或标记(refs/tags/xxx
),
git clone $remote -b $revision --depth=1 --single-branch
#or
git fetch $remote $revision --depth=1 && git checkout FETCH_HEAD
如果revision
是特定提交或其他名称空间下的引用,而不是refs/tags/
或refs/heads/
,
git fetch $remote $revision --depth=1 && git checkout FETCH_HEAD
请注意,当revision
是没有ref指向的特定提交时,git fetch
将因error: Server does not allow request for unadvertised object
而失败。 git config
或托管服务配置中的变量允许获取未公开的对象:
uploadpack.allowTipSHA1InWant
uploadpack.allowReachableSHA1InWant