在一些脚手架上构建项目中, 你或许会留意到某个目录中会有个名为.gitkeep
的空文件. 那么这个文件是用来做什么的呢?
缘由
什么是.gitkeep
? 其实是这样的, 当提交的代码时目录中有空文件夹时git
会自动忽略掉. 而有时候你就是想留着这个, 以后有用处不想被忽略怎么办呢? 因此, .gitkeep
就应运而生了…
.gitkeep
是一个约定俗成的文件名并没有什么特殊规则, 它就相当于一个占位, 让git
开始跟踪这个目录.
其实任何文件都可以, 只不过大家都遵循这个命名, 会跟具有语义化. 如同字面意思一样…git
+ keep
, 让git
保持这个文件夹, 是不是很简单易懂呀?
创建文件
“哥, 能发个’.gitkeep’给我蛮? 项目中的弄丢了..”
“啊? 直接创建一个不就完啦?”
“创建不了呀!!系统不准, 会报错提示必须输入文件名”
“噢~是有这个限制的, 你用命令行吧”
“搜了圈, 好像没有找到在windows创建的方法诶, “
“? ? ?”
没错, 上面这场景就是让我写这篇博客的主要起因…其实windows下环境创建.
开头的文件只能通过命令行的方法, 而且方式也很简单. 只需要输入一行命令即可..
1 | type NUL > .gitkeep |
这段代码的意思就是创建一个空文件重定向到名为.gitkeep
的文件中.
gitignore与gitkeep
在脚手架构建的项目中, 你也总能在根目录看到名为.giitignore
的文件, 那么它和gitkeep
又有什么关联呢? 前文有提过, .gitkeep
只是约定俗成的一个名称, 而.gitignore
是一个特殊文件, 如果你有什么不想提交上去的东西, 如配置了表单密码的配置文件呀什么的, 你可以写进这个文件中, git
会自动的忽略掉它.
忽略文件的原则是:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
- 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
总结
其实像.gitignore
带有其他特殊文件还有其他, 如.nojekyll
来告诉Github关闭 GitHub Pages 的 Jekyll 相关功能等, 由于实际工作中用的烧, 这里不详谈, 放着让大家去挖掘吧~