Git 实现github仓库管理-删除指定目录下的所有文件并保留目录结构

在项目中,我们有时会希望清空某些示例或临时目录中的所有文件,但又希望保留文件夹结构(例如为了保持编译路径、Git 提交结构或方便后续添加新文件)。

本文以 Examples 目录为例,展示如何删除其中的所有文件,同时保留子目录结构。

场景示例

我们希望:

  • 删除 Monocular、RGB-D、ROS、Stereo 下的所有文件;

  • 但仍然保留这四个文件夹;

  • 并且让 Git 继续跟踪这些空目录(默认 Git 不会提交空文件夹)。

步骤一:删除文件但保留目录

提前选择空白文件夹,用于远程拉取项目存储位置,并在该目录打开 Git Bash终端,并执行:

bash 复制代码
#⚠️ -type f 表示仅删除文件,不会删除文件夹。
find 文件夹路径 -type f -delete

步骤二:保持空目录可被 Git 跟踪

Git 默认不会提交空文件夹,因此需要在每个空目录中放置一个占位文件。最常见的做法是使用 .gitkeep 文件(名称不固定,但业界约定俗成)。

执行以下命令:

bash 复制代码
/*
    1.-type d:查找目录;
    2.-empty:只匹配空目录;
    3.-exec touch {}/.gitkeep \;:在空目录中创建一个 .gitkeep 占位文件。
*/

find Examples -type d -empty -exec touch {}/.gitkeep \;

执行后,结构如下:

步骤三:提交到 Git 仓库

bash 复制代码
git add Examples
git commit -m "Done and added .gitkeep to preserve structure"
git push 

提示成功;

相关推荐
用户别睡觉9 分钟前
有时候放弃也是一种收获
人工智能·github
愚坤1 小时前
前端真有意思,JS还能独立做项目?
前端·javascript·github
dong_junshuai2 小时前
每天一个开源项目#157 Modern Web Guidance:让Agent按需查浏览器能力
github
你叶不叶6 小时前
abap git 如何从 gitee上在线拉取数据(上一步已经配置好证书)
git·gitee·sap·abapgit
一条Go6 小时前
OnCall 时段路由:跨午夜、左闭右开与「Local 不是时区」
后端·架构·github
黎羽_21 小时前
《开源 PR 实战》系列(三):22 个 PR 之后,批量提 PR 的打法
开源·github·代码评审·pull request·协作
fthux1 天前
总想着“忙完再休息”?让 Tick Rest 提醒你,先歇一会儿
开源·github·mac·swift·提醒·消息提醒·tick rest·tick rest for mac·消息提醒app
dong_junshuai1 天前
每天一个开源项目#156 Astryx:主题编译、异步按钮与源码接管
github
逛逛GitHub1 天前
把你的 AirPods 当鼠标用,这 3 个黑科技 GitHub 开源项目有趣。
github
kuroomi1 天前
Git入门
git·kubernetes