Git 保留空文件夹结构
假设有如下 helloworld 项目结构:
helloworld
|--.git
|--.gitignore
|--Builds
|--WebGL
|--iOS
|--Android
现在有个需求,在上传到 github 仓库时,只想保留 WebGL、iOS、Android 文件夹的结构,不想要里面的内容,可以按以下步骤实现
- 分别在 WebGL、iOS、Android 文件夹下创建一个空文件,如 .gitkeep 文件,完成后结构如下:
WebGL
|--.gitkeep
iOS
|--.gitkeep
Android
|--.gitkeep
- 在项目根目录下的 .gitignore 加入以下内容(#注释可忽略).
# 忽略 Builds/Android 下的所有文件,只保留 Builds/Android/.gitkeep
Builds/Android/*
!Builds/Android/.gitkeep
# 忽略 Builds/WebGL 下的所有文件,只保留 Builds/WebGL/.gitkeep
Builds/WebGL/*
!Builds/WebGL/.gitkeep
# 忽略 Builds/iOS 下的所有文件,只保留 Builds/iOS/.gitkeep
Builds/iOS/*
!Builds/iOS/.gitkeep
完成以上步骤,可以尝试添加一此内容到 WebGL、iOS、Android 文件夹下,再执行 git status、git add 操作,发现新加入的内容并未监测到更改.
注意: 如果依然能监测到更改,可能在此之前 WebGL、iOS、Android 文件夹下的文件,已被追踪或提交过了,此时通过以下命令移除即可.
# 移除父文件夹 Builds 下的所有文件,
# 也可以逐个多次移除 Builds/WebGL、Builds/iOS、Builds/Android
git rm -r --cached "Builds"