前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git 不能提交空目录?我也是醉了!

Git 不能提交空目录?我也是醉了!

作者头像
Java技术栈
发布2020-09-22 11:18:17
6.9K0
发布2020-09-22 11:18:17
举报
文章被收录于专栏:Java技术栈

Java技术栈

www.javastack.cn

关注阅读更多优质文章

Git 不能提交空目录?我也是醉了!

背景

最近在提交文件时,因为是空的 Maven 项目结构,发现 Git 空目录死活不能提交,还以为是我自己在 .gitignore 文件中忽略了,在网上查了下,原来还真有这回事。

如,用 git status 查看状态:

代码语言:javascript
复制
$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

空目录无法被 git 感应。

解决方案

最主流的做法是,在空目录下创建 .gitkeep 或者 .keep 空文件,或者 .gitignore 文件,这只是一个约定俗成的空目录识别文件名,其实除了占位识别空目录,其他并没什么卵用。

我们再在空目录中创建一个空文件:

代码语言:javascript
复制
touch .gitkeep

然后再用 git status 查看状态:

代码语言:javascript
复制
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
 src/

nothing added to commit but untracked files present (use "git add" to track)

现在可以感应到 src 目录了。

另外需要注意,在项目的 .gitignore 中不要忽略此文件。如果有需要,关注公众号Java技术栈可以获取一份推荐的 .gitignore 通用文件。

WHY

这种解决方案感觉有点扯淡,为什么提交不了空目录,一定要放个文件才行,放个不相干的文件感觉又有点扯淡。

于是抱着怀疑的态度再次查下资料,在下面这个链接我找到解释:

https://git.wiki.kernel.org/index.php/GitFaq#Can_I_add_empty_directories.3F

大概就是,Git 最初的设计是用来索引文件的,所以 Git 只关注文件,不关心文件,不关心目录。

这是不是 Git 的设计问题呢?

最后,你是否有遇到这种蛋疼的问题?你还有其他解决方案吗?欢迎留言分享~

后面我还会分享一些我平时用到的修改历史记录的实战干货,比如怎么修改历史提交信息、合并多次提交等,关注公众号Java技术栈第一时间推送。

老铁们,觉得有用,点个在看、转发支持下哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 解决方案
  • WHY
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档