目录

  • 起因
  • `.gitkeep` 文件的作用
  • 总结

起因

其实关于 .gitkeep 这个文件呢,我之前是完全没有听说过的。也是前几天同事分享,我才了解到关于这个文件的一些东西。

.gitkeep 文件的作用

经过同事的介绍,我发现其实 .gitkeep 这个文件并不是一个多么复杂 ,多么高深的东西,相反,它的意图,或者说作用,其实非常简单!

就是——使 Git 保留一个空文件夹

说实话,这样的作用,有点出乎我的意料,因为,我以前其实也用过类似的东西。

众所周知,Git 是一个文件追踪系统,这也导致了 Git 的设计初衷是对文件进行追踪,所以,Git 不会追踪一个空目录

但是,在某些情况下,我们确实是需要保留一些空目录的。例如:项目结构、项目脚手架等。

这时候,由于尚未对功能进行开发,所以某些目录下根本没有文件,如果我们不做任何措施直接将该 repo push 到远端的话,就会产生一个情况:空目录丢失!

为了解决这个问题,以前我的做法是在空目录下新建一个名为 please.delete.me 的文件,该文件没有内容,仅仅用于声明,告诉 Git 该目录不是一个空目录,从而将该目录保留,而在使用时,当该目录有了真正的有意义的文件时,就应该删除 please.delete.me 文件。

.gitkeep 文件的作用,和我用过的 please.delete.me 文件的作用完全一样,不同之处仅仅在于换了一个好听点的名字。

到这里,其实这个文件已经算是解释清楚了,但是,为什么要叫 .gitkeep 呢?为什么不叫 please.delete.me 呢?

因为 please.delete.me 这个做法其实也是从我的老师那里学来的,我一直觉得这是一个很

什么是 .gitkeep ?相关推荐

  1. .gitkeep是什么? .gitignore和.gitkeep之间的区别(译)

    你是不是在git工程里遇到过.gitkeep文件?如果你通过angular脚手架来生成angular2或者angular4工程,你会发现.gitkeep文件在./src/app/assets文件夹里. ...

  2. .gitignore和.gitkeep有什么区别?

    本文翻译自:What are the differences between .gitignore and .gitkeep? What are the differences between .gi ...

  3. .gitkeep文件的作用

    git默认是不允许提交一个空的目录到版本库上的, 可以在空的文件夹里面建立一个.gitkeep文件,然后提交去即可.其实在git中 .gitkeep 就是一个占位符.

  4. 三年 Git 使用心得 常见问题整理

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:秋天不落叶,来源:民工哥技术之路 Git 流程图 Workspac ...

  5. 美多商城之项目准备-工程创建和配置

    一.创建工程 美多商城项目源代码采用远程仓库托管. 1. 准备项目代码仓库 1.源码托管网站 码云(https://gitee.com/)   [国内网站,速度快] 2.创建源码远程仓库:meiduo ...

  6. Git入门教程(上)

    提交一个简单文件 首先,使用GitHub的`windows客户端将项目clone到本地 假设将test这个项目的目录放在了中C:\xampp\htdocs\Github\test,然后打开Git Sh ...

  7. 企业里实现代码自动部署、回滚的解决方案——Caphub

    上周给大家介绍了capistrano,它可以帮助我们来解决代码自动部署与回滚的软件,但这个软件还是有点缺点,比如如果你同时有多个项目的时候,就得创建多个目录,然后每次进行代码更新的时候,进入到不同的目 ...

  8. 我练习项目眼中的 vue

    因为毕业设计开始了 vue 的学习之路,曾写过一些入门的 vue 小白学习文章系列(2018 我所了解的 Vue 知识大全(一)).如今已经工作半年了,这一次想说说我我平时练习项目中的 vue ,我习 ...

  9. Hyperledger Fabric SDK Go构建第一个应用

    写在前面: 本文内容翻译自:https://chainhero.io/2018/03/tutorial-build-blockchain-app-2/ ,文档中的命令操作均在实际环境进行验证,现将成果 ...

最新文章

  1. JavaScript 定义类时如何将方法提取出来
  2. 【组队学习】【29期】Datawhale组队学习内容介绍
  3. POJ_1195 Mobile phones 【二维树状数组】
  4. github 公钥 私钥_GitGithub入门教程笔记(2)
  5. 【ARM】Tiny4412裸板编程之异常
  6. 一个切图仔的 CSS 笔记
  7. 《HTML5实战》——A.2 常见的HTML5规范
  8. socket套接字TCP API
  9. python packaging quickstart
  10. Metropolis Light Transport学习与实现
  11. java 高效的 httpclient_使用httpclient下载zip的有效方法
  12. 聪明人懂得深交四种人,绝交三种人!
  13. 常见错误:无效的文件dsn
  14. 事业公共基础计算机,2011安徽省事业编公共基础知识(必备资料)
  15. 姿态识别+校准|视觉技术新突破
  16. 共享锁与排他锁的关系
  17. Vue项目中的自定义指令
  18. Python将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
  19. 分布式监控apm_Datadog:APM和分布式跟踪的新Java支持
  20. 如何在SpringBootOAuth服务器中实现双因素认证?第二部分:Under the Hood

热门文章

  1. jmail组件 java_Jmail发送邮件工具类分享
  2. 计算机网络历年填空与选择(2013)
  3. 用计算机打印相片怎么调色,我想打印这张照片脸色有些发红,请高手调调色,谢谢了...
  4. cad中tk什么意思_AutoCAD中“实点”解读:TK命令怎么用? - CAD自学网
  5. 电影管理软件+android,影视多媒体管理软件Media Companion
  6. Android 内核加载fw通用方法分析
  7. python定义定长数组_python 初始化一个定长的数组实例
  8. 基于单细胞多组学数据无监督构建基因调控网络
  9. K-L散度(相对熵)的理解
  10. jsp连接数据库实现注册登陆(超级详细)