Git Sparse Checkout不允许任何工作指令

hen*_*000 17 git bitbucket

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

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

  • SomeProjectRepo
    • JohnsProject
    • MarysProject
    • 我的项目

我在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

在步骤6,我得到"稀疏结账在工作目录上没有任何条目".我曾试图在第5步(如不同的语法MyProject\,SomeProjectRepo\*,SomeProjectRepo\MyProject\,等,等),但没有奏效.

如何使用稀疏结账(或任何其他工具)才能使用" MyProject"?

hen*_*000 28

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

以下行现在有效:

echo "MyProject/*"> .git/info/sparse-checkout
Run Code Online (Sandbox Code Playgroud)

重要的是在目录的末尾使用/,使用*并不留空间.

然后你可以再次拉或检查分支(git checkout master).

  • 这也解决了詹金斯稀疏签出的问题。Jenkins SCM中的结帐路径必须使用正斜杠。http://i.stack.imgur.com/VD93V.png (2认同)

Wil*_*lem 6

Windows 用户的解决方案

Windows 上,该echo "..." > outfile命令以默认系统编码创建一个文件。Git 无法处理,它要求文件为ASCII

电源外壳

将现有文件修改为 ASCII,假设您已经创建了它并且它不起作用:

Set-Content .git\info\sparse-checkout "MyProject/*" -Encoding Ascii
Run Code Online (Sandbox Code Playgroud)

或者从一开始就用正确的编码创建文件:

echo MyProject/* | out-file -Encoding Ascii .git/info/sparse-checkout
Run Code Online (Sandbox Code Playgroud)

背景

在 Windows git 上查看更长的解释:“错误:稀疏结帐在工作目录上没有任何条目”