1

当我在 Windows 上克隆存储库时,它会抱怨文件名带有冒号,因此签出失败。我想使用稀疏结帐来排除整个目录,但它不起作用。稀疏结帐是在这里提供帮助的正确方法吗?

我的步骤:

git init <project_name>
cd <project_name>
git remote add origin http://<url>.git
git config core.sparsecheckout true
echo "folder1" >> .git/info/sparse-checkout 
echo "folder2" >> .git/info/sparse-checkout // exclude folder3 as it causes trouble.
git pull origin master

但是,它仍然会下载所有内容,并且由于该文件的名称中带有冒号,因此向 master 签出失败。我做的每一件事都正确吗?稀疏结账是帮助我的正确方法吗?

4

1 回答 1

0

我找到了根本原因:调用时不应该包含双引号echo,如果只需要排除几个文件夹,使用感叹号可以使整个事情变得更容易。

这是我的脚本:

@echo off
if "%1"=="" goto blank

git init %1
cd %1
git remote add origin http://<url>.git
git config core.sparseCheckout true
(
  echo /*
  echo !/<dir needs to be excluded>
) > .git/info/sparse-checkout
git pull origin master
echo repo created in %1.
goto :EOF

:blank
echo Please specify a folder name.
于 2019-12-17T23:32:59.477 回答