我正在尝试使用稀疏检查来从BitBucket存储库中检出一个目录,但是当我尝试拉出时,得到“稀疏结账不会在工作目录上留下任何条目”错误。
BitBucket存储库具有以下目录结构:
我的Windows 7笔记本电脑上的E:\ Temp \ SomeProjectRepo上有一个本地目录。我想从BitBucket存储库中检出/拉出“MyProject”到我的本地目录,所以我可以在E:\ Temp \ SomeProjectRepo \ MyProject上工作。
所以我创建了“E:\ Temp \ SomeProjectRepo”并在DOS中执行了以下操作:
cd E:\Temp\SomeProjectRepo
git remote add origin https://bitbucket.org/blah/blah
git init
git config core.sparsecheckout true
echo MyProject > .git/info/sparse-checkout
git pull origin master
在第6步,我得到“Sparse checkout在工作目录上没有任何条目”。我在第5步尝试了不同的语法(例如MyProject\
,SomeProjectRepo\*
,SomeProjectRepo\MyProject\
等等,但都没有。
如何使用稀疏结帐(或任何其他工具)才能使用“MyProject
”?
答案 0 :(得分:28)
以下行现在可以使用:
echo "MyProject/*"> .git/info/sparse-checkout
重要的是使用/
,使用*
并在目录末尾留下空格。
然后你可以再次拉或检查分支(git checkout master
)。
答案 1 :(得分:2)
在Windows上,echo "..." > outfile
命令以默认系统编码创建文件。 Git无法解决这个问题,它要求文件使用ASCII。
Powershell解决方案:
Set-Content .git\info\sparse-checkout "MyProject/*" -Encoding Ascii
或
echo MyProject/* | out-file -encoding ascii .git/info/sparse-checkout
在此处On Windows git: “error: Sparse checkout leaves no entry on the working directory”
中查看详细说明答案 2 :(得分:1)
Windows Git 2.25注意
2.25包含git sparse-checkout
功能,可以使某些工作提前进行。但是,据我所知,它以UTF8的形式写入稀疏检出文件,这与Willem指出的问题相同
我在此线程中使用了powershell解决方案来强制执行ascii https://stackoverflow.com/a/55158885/12927399
只需为git sparse-checkout
命令提供警告!
答案 3 :(得分:0)
如果您在与我相同的Windows上工作
您不应该在稀疏签出文件中获得引号,并且它将不起作用 和 需要在路径末尾使用/ *
这对我有用
echo src / * >> .git / info / sparse-checkout