windows - 在 Windows 上 git : “error: Sparse checkout leaves no entry on the working directory”

标签 windows git powershell github-for-windows

我有错误:

“error: Sparse checkout leaves no entry on the working directory”

尝试在 Windows 上的 git 中设置稀疏 checkout 时。在研究了这个问题并找到了遍布整个网络的完整答案后,我已经回答了我自己的问题。

最佳答案

tl;dr

从您希望源所在的文件夹,使用 git-bash 提示符而不是 powershell(尽管请参阅下面我的编辑):

git clone –n <repo> <local-directory-name>
cd <local-directory-name>
git config core.sparsecheckout true
echo some/sub-folder/you/want >> .git/info/sparse-checkout
git checkout <branch-name>

完整解释

稀疏 checkout 使您能够处理存储库的一个子集。在大型存储库上设置稀疏检查是值得的,一切都快得多!

我努力在 Windows 上设置它,收到很多“错误:稀疏 checkout 在工作目录上没有留下任何条目”。经过一番研究后,我发现以下步骤最少,而且对我来说一直都有很好的效果——YMMV。

最重要的一点是——不要在这些步骤中使用 POWERSHELL/CMD——使用 git bash 提示符。这是因为否则 echo 命令会生成带有 BOM 标记的 UNICODE 文件。该文件必须是具有 UNIX 样式行结尾的 ANSI 格式文件,以便 git 正确解析它。这是“错误:稀疏 checkout 在工作目录上没有留下任何条目”错误的最可能原因。

  1. 从您希望成为根文件夹的目录的父目录,假设文件夹名称为“src”,执行以下操作,这将获取整个存储库(这仍然是必需的),但重要的是不执行 checkout ,并正确设置源远程和分支跟踪。

    git clone –n <your repository> src
    
  2. 您应该有一个看起来相当空的 src 文件夹(它将包含 .git stash 文件夹)。现在运行以下命令。这会更新本地 git 配置以打开稀疏 checkout ,并在 .git/info stash 文件夹中创建一个文件,该文件将列出您在执行稀疏 checkout 时要包含的所有文件夹。这可以稍后编辑以添加其他文件夹。 重要:一定要在下面使用 git bash 提示符,并在编辑 sparse-checkout 文件时使用支持 unix 行结束约定的编辑器并另存为 ANSI,否则你可能会得到“错误:稀疏 checkout 不会在工作目录上留下任何条目”错误。 <path you want to checkout>可能看起来像这样:path/to/subfolder - 注意缺少前导和尾随路径分隔符。

    cd src
    git config core.sparsecheckout true
    echo <path you want to checkout> >> .git/info/sparse-checkout
    
  3. 现在您可以 checkout 了。这应该只留下填充的稀疏 checkout 文件夹。如果没有,请仔细检查上面所有内容的拼写!

    git checkout <branch-name>
    

编辑 - Powershell 中的 Echo

我最近发现 powershell 中的 echo 是写输出的同义词。可以通过将回显传送到 out-file 来获得 ASCII 输出允许您指定编码的命令。所以这将在 Powershell 中运行并提供正确的文件内容:

echo some/sub/folder/you/want | out-file -encoding ascii .git/info/sparse-checkout

关于windows - 在 Windows 上 git : “error: Sparse checkout leaves no entry on the working directory” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23289006/

相关文章:

c# - 创建窗口窗体对象的最佳位置

带有协和飞机的 R TSP 包

git - 无法在 Intellij 上更新项目

kubernetes 中的 Gitsync 部署不正确

powershell - Start-Process Powershell 命令中的动词 RunAs 导致错误

powershell - 使用 powershell 更新程序集信息

sql-server - Visual Studio团队在线服务-运行sql脚本

在映射文件上调用 VirtualProtect

windows - 将 mozilla firefox 证书存储访问到 HCERTSTORE

django - 使用 Django、Git 和云服务器进行开发