当git clone --depth 1不起作用时,checkout to branch

时间:2015-07-13 08:21:57

标签: git git-checkout

set -e
cd /source

git clone --depth 1 https://github.com/named-data/ndn-cxx.git

pushd ./ndn-cxx

git checkout -b release-build ndn-cxx-0.3.3

./waf configure

./waf

./waf install

popd

rm -rf ./ndn-cxx

我正在运行上面提到的脚本,但收到错误:“克隆 进入'ndn-cxx'...... / source / ndn-cxx / source 致命:无法同时更新路径并切换到分支'release-build'。 您是否打算结帐'ndn-cxx'哪个无法解析为提交?“

2 个答案:

答案 0 :(得分:3)

默认情况下,如果您指定--depth选项,git将仅获取主分支,因此您无法结帐到任何其他分支。

您可以写下以下内容:

git clone --depth 1 <url> --single-branch --branch <branch>

取代最新版本的<branch>,如下所示:

git clone --depth 1 https://github.com/named-data/ndn-cxx.git --single-branch --branch ndn-cxx-0.3.3

克隆

后你不必做git checkout

答案 1 :(得分:0)

正如@ edi9999所述,--depth选项默认情况下会提取单个分支。如果要获取指定深度尖端附近的所有其他分支,则必须指定--no-single-branch选项。

例如

git clone https://github.com/named-data/ndn-cxx.git --depth 1 --no-single-branch