Git Sparse Checkout在工作目录上没有任何条目

时间:2014-07-11 06:23:54

标签: git bitbucket

我正在尝试使用稀疏检查来从BitBucket存储库中检出一个目录,但是当我尝试拉出时,得到“稀疏结账不会在工作目录上留下任何条目”错误。

BitBucket存储库具有以下目录结构:

  • SomeProjectRepo
    • JohnsProject
    • MarysProject
    • MyProject的

我的Windows 7笔记本电脑上的E:\ Temp \ SomeProjectRepo上有一个本地目录。我想从BitBucket存储库中检出/拉出“MyProject”到我的本地目录,所以我可以在E:\ Temp \ SomeProjectRepo \ MyProject上工作。

所以我创建了“E:\ Temp \ SomeProjectRepo”并在DOS中执行了以下操作:

  1. cd E:\Temp\SomeProjectRepo
  2. git remote add origin https://bitbucket.org/blah/blah
  3. git init
  4. git config core.sparsecheckout true
  5. echo MyProject > .git/info/sparse-checkout
  6. git pull origin master
  7. 在第6步,我得到“Sparse checkout在工作目录上没有任何条目”。我在第5步尝试了不同的语法(例如MyProject\SomeProjectRepo\*SomeProjectRepo\MyProject\等等,但都没有。

    如何使用稀疏结帐(或任何其他工具)才能使用“MyProject”?

4 个答案:

答案 0 :(得分:28)

好的,我有这个工作。正如我所料,由于步骤5,它无法正常工作。

以下行现在可以使用:

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