Git本地忽略文件夹,只拉取目标文件夹

前情:我的路径为F:\UnityProject\TGILab\pico\UnityProject\Assets\EaseVSim,其中EaseVSim是一个独立的子模块文件夹,如果没有子模块只执行步骤3之后的内容即可。

  1. 关闭unity程序

  2. 因子模块已经在本地存在,执行稀疏检出可能无效,建议先把EaseVSim子模块下的内容暂存/复制/提交,确保子模块下无重要内容之后执行以下命令,删除重新加载EaseVSim子模块

    以下命令行按顺序执行

    2.1 进入项目目录
    cd /f/UnityProject/TGILab/pico(换成自己的路径)

    2.2 停用子模块
    git submodule deinit -f -- UnityProject/Assets/EaseVSim

    2.3 删除子模块的本地仓库缓存
    rm -rf .git/modules/Assets/EaseVSim

    2.4 删除子模块的工作目录
    rm -rf UnityProject/Assets/EaseVSim

    2.5 重新初始化并克隆子模块
    git submodule update --init --recursive --UnityProject/ Assets/EaseVSim

    之后子模块切换到main分支

  3. 命令行进入子模块目录
    cd /f/UnityProject/TGILab/UnityProject/Assets/EaseVSim

  4. 打开稀疏检出开关
    git config core.sparseCheckout true

  5. 打开子模块的目录(如果没有子模块直接打开.git/info)
    F:\UnityProject\TGILab\pico\.git\modules\UnityProject\Assets\EaseVSim\info

    换成自己的本地目录,找到info下面 sparse-checkout 文件

    (如果没有的话新建一个sparse-checkout.txt文件,删除后缀),右键记事本打开

    全选删除,根据自己项目情况,增删下面的记录,注意 !之前不要有空格

/*

!AAAExpms/DengGaoZY/

!AAAExpms/DengGaoZY.meta

第一行的/*代表全部文件,后面的 ! 开头代表忽略这个文件夹,取消忽略就删除上面文件内容

  1. 保存文件,还是打开之前的命令行,执行
    git reset --hard HEAD

强制刷新一下就可以了,其他同事如果在本地已忽略的文件夹提交文件不会更新,更新子模块也不会失效

相关推荐
ControlRookie4 小时前
SyncBridge:一个 CODESYS 工程与 AI 之间工程师级的同步工具
git·ai编程·codesys·工业软件·controlrookie
鬼手点金13 小时前
opencode-性能优化建议
java·人工智能·git·自动化·nanogpt
网络毒刘15 小时前
开源 Aider 工作流实战:Git 提交驱动的 AI 结对,与 Cursor 何时互补
git·ai编程·cursor·aider
HRTOS17 小时前
HRTOS 4.0 将长期维护:为什么版本号不再频繁变化
经验分享·git·单片机·51单片机
驭渊的小故事1 天前
linux 基础命令 + git 仓库创建和配置命令
linux·git
行者-全栈开发2 天前
华为云码道 CodeArts 实测:让 AI 用 Rust 写一个 Git 仓库健康度体检台「仓衡」
git·rust·tauri·桌面应用·ai 编程·华为云码道·codearts 代码智能体
挖掘狂人4 天前
Git 从 0 到 1:用一个小项目走完 add / commit / reset / merge / rebase / push
git·后端·github
codigger4 天前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程4 天前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
idanzk4 天前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl