美文网首页
git Clone succeeded, but checkou

git Clone succeeded, but checkou

作者: 轩岚 | 来源:发表于2022-05-07 11:12 被阅读0次

    今天使用git clone命令去拉取远程仓库时,遇到了错误: Clone succeeded, but checkout failed.

    仔细分析上面的错误提示,有一个文件的路径被认为是不合法路径mock-api/api/ifast/ifast-cms\api\v1\app\banners.json,这个路径竟然既有/\

    查看远程git文件,文件名是带\,然而在win10下\属于特殊字符不能用作文件名

    原来在mac系统下是支持这种命名方式,其他同事使用mac系统命名文件且上传到git,等到我在win10系统去用git clone时就报错了

    2种解决方法

    1. 修改git上用特殊字符命名的文件

    2. 拉取远程文件时忽略包含特殊文件名的文件

    方法1最大阻碍就是说服别人修改已上传文件名,如果是经常逛github浏览开源项目应该发现基本没有这种文件命名方式,更多的是用-_拼接;使用方法2的前提是项目运行时特殊文件名的文件不是必须的,不拉取下来都能运行项目,我这里使用的是方法2,刚好项目内特殊文件名的文件项目运行时用不到

    方法2步骤

    不直接使用git clone而是使用git sparse-checkout

    1. mkdir filename 创建本地文件目录

    2. git init加入 git 版本管理

    3. git remote add -f origin git@IP:XXX.git添加远程仓地址

    4. git sparse-checkout init初始化sparse-checkout且使用该模式,运行命令后会在目录.git/info/下生成sparse-checkout文件

    5. 在sparse-checkout文件内输入以下内容,我这里是需要忽略mock-api目录下的所有文件

    /*
    !/mock-api/
    
    1. git config core.protectNTFS false Windows下默认true,不符合NTFS策略的文件不会被签出(文件名有\就不符合),设置为false后可以关闭保护机制(不执行这句命令会导致sparse-checkout失效,先被NTFS策略拦截)

    2. git pull origin master拉取master分支代码

    相关文章

      网友评论

          本文标题:git Clone succeeded, but checkou

          本文链接:https://www.haomeiwen.com/subject/osoturtx.html