大坑:git无法添加一个空的文件夹

楔子

今天在github上创建了个有初始化选中Initialize this repository with a README(初始化本库)的空白工程,然后用git clone到本地。
我本意想创建一个gradle规范的目录,于是创建了.gitignore , README.md, settings.gradle这几个标准的文件,然后通过如下的脚本创建标准的代码目录。

task "create-dirs" << {
    sourceSets*.java.srcDirs*.each { it.mkdirs() }
    sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

标准的目录如下图所示:
在这里插入图片描述
然后我顺手执行git add src,发现没反应,没有添加到版本库中,然后我进行了个种奇技淫巧的尝试,比如删除掉.git目录,比如手动创建目录等,最终均未成功,这让我有点怀疑人生,陷入深深的焦虑之中。

解决办法

最终依靠强大的搜索引擎找到了答案,因为git空目录无法add。如果想add一个空目录,则需要在它下面创建一个文件,比如(.gitignore)。

  • 原因解释如下:

https://git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F
Currently the design of the git index (staging area) only permits files to be listed, and nobody competent enough to make the change to allow empty directories has cared enough about this situation to remedy it.

这个算设计失误吧,好多项目还得弄个假文件在空文件夹里面占位。
大概是linus一开始就把快照设计成只有文件组成,后来想想要改太难,就算了吧。反正你们可以用假文件来占位(oh,so linux!),为什么要linus亲自实现它。

  • 解决方案:

现在的主流做法是在空文件夹里放置一个.gitkeep文件
加个.gitconfig文件在里面比较实用,也不会觉得突兀。虽然绝大多数时候这个文件也没什么卵用。

如下的文件夹就可以顺利提交了(添加了SvnAddTest文件)。
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值