git 和 svn 不同,仅仅跟踪文件的变动,不跟踪目录。Perforce 也是如此。所以,一个空目录,如果里面没有文件,即便 git add 这个目录,另外在别处 check out 的时候,是没有这个空目录的。

只跟踪文件变化,不跟踪目录,这么设计是有原因的。但这会带来一些小麻烦。有时候,确实需要在代码仓库中保留某个空目录。比如测试时需要用到的空目录。

变通的解决办法是在空目录下存一个 .gitignore 文件。然后 git add 此目录后,相当于跟踪了 .gitignore 文件,产生的“副作用”就是这个“空”目录也纳入“跟踪”,最终的效果是可以 check out 出一个看起来空空的目录。如果有许多这样的空目录,可以用下面的命令自动补充 .gitignore 文件:

find . −typed−empty -and −not−regex./.git.∗ -exec touch {}/.gitignore ;

递归找寻当前目录下,类型为目录,且为空,也没有 .git 开头的文件,在其中用 touch 新建一个空的 .gitignore 文件。然后 git add . 之后即可。

如果这些特殊文件会对测试带来干扰,那就只好在测试程序运行具体测试项目之前,先跑一段初始化目录结构的代码。另外可能还需要编写负责清理的代码。

git add -A和git add .和git add -u
git add -A 处理所有:添加、修改、删除

git add . 处理添加和修改,不处理删除

git add -u 处理修改和删除,不处理新添加文件

说"git add -A"等于"git add ."加上git add -u"其实不准确,只能说功能上前面一个等于后面两个,但它们使用的场景不同都有自己的作用。

用 git 保存空目录相关推荐

  1. 删除或修改本地Git保存的账号密码

    win10 系统下进入 控制面板 > 用户帐户 > 管理你的凭据 选择 [Windows 凭据] git 保存的用户信息在普通凭据列表里 >>编辑>>>完成 ...

  2. git - 提交空目录

    git - 提交空目录 需要在目录下创建 .gitkeep 文件,然后在项目的 .gitignore 中设置不忽略 .gitkeep. .gitkeep 是一个约定俗成的文件名并不会带有特殊规则. s ...

  3. git保存仓库的账号密码

    git保存仓库的账号密码 1.执行保存账号命令 保存本地仓库的账号 git config --local credential.helper store 保存git全局账号 git config -- ...

  4. linux git 记录密码,linux git 保存用户名和密码

    一.通过文件方式 1.在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式: touch .git-credentials vim .git-crede ...

  5. git保存账号密码_Altium Designer 通过Git实现版本控制

    为了解决每次对PCB工程进行修改时不能回溯的问题,以及为日后团队协作完成某项工程提供方便,所以我研究了一下如何在AD中实现版本控制. 所幸的是,AD本身自带VCS功能(Version Control ...

  6. git提交空目录的方法

    git管理文件的方式与cvs和svn等不同,git只关注文件的变动,不单独关注目录变动.所以通常情况下,空目录是无法提交到git仓库的.但是由于一些实际的情况,我们需要空目录的存在. 那如何提交空目录 ...

  7. Linux中git保存用户名密码

    Linux下命令行使用git,每次操作都要输入用户名和密码很麻烦,可以通过配置保存用户名和密码. 进入到git项目的根目录下,打开.git目录下的config文件 cd .git vim config ...

  8. 黄聪:TortoiseGit(乌龟git)保存用户名密码的方法

    1.在项目文件夹右键--tortoiseGit--设置 2.编辑全局.git/config 3.加上这行代码 里面会有你先前配好的name 和email,只需在下面加一行 [credential] h ...

  9. git保存用户名和密码,不用每次输入账号

    实验环境:window10,安装git,tortoiseGit 打开.gitconfig 在[credential]下增加一项: helper = store

最新文章

  1. ubuntu设置不同的eigen版本
  2. java获得单元格的值_java – 从单元格值Apache POI获取单元格索引
  3. Ruby中求50之内的素数方法
  4. c++预处理命令 #include用法
  5. 容器源码分析之PriorityQueue(十)
  6. 常用数据类型(C#)
  7. halcon get_image_pointer1获取图像指针
  8. sql 循环处理数据_图文介绍 SQL 的三种查询计划处理模型,Spark 用了其中两个
  9. esxi备份,datastore,vmdk
  10. 软件工程——理论、方法与实践 之 面相对象分析
  11. 强悍的 Linux —— Linux 中 TTY 是什么意思
  12. 面向对象的oop编程思想
  13. 1、常用DOS命令大全
  14. python arp断网攻击_ARP断网攻击的原理与解决方法讲解 | 小马激活官网
  15. python爬虫:模拟有道词典翻译文本
  16. android获取app使用时间,android如何获取系统里各个应用的使用时间
  17. 联想小新pro16锐龙版和酷睿版的区别 哪个好
  18. AWS 中文入门开发教学 21- 通过 Web 应用连接到 MySQL 数据库服务器
  19. 论文的章节有重复率的要求吗?
  20. SSH远程访问开发板

热门文章

  1. Intel MKL FATAL ERROR Cannot load mkl_intel_thread.dll
  2. matplotlib新版本下的霍兰德人格分析雷达图
  3. linux如何给各节点时间同步,Linux 系统配置各个节点的时间一致性
  4. linux下修改mysql数据存储_linux 更改mysql 数据存储目录
  5. hue 添加jar_在hue下配置jdbc驱动
  6. ajax工具怎么安装,AJAX工具
  7. c语言一维数组课件,第9章:c语言一维数组课件
  8. stata软件不出图_请问stata软件怎样做出像revman软件一样的森林图
  9. cookie session token区别_彻底理解cookie,session,token
  10. curl 请求没反应_理解Redis的反应堆模式