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. Java Reflection(九):泛型
  2. scala学习笔记-Array、ArrayBuffer以及遍历数组(7)
  3. Python循环的一些基本练习
  4. Python入门:局部变量与全局变量2
  5. 科学•转化医学 | 中国科大发现NK细胞促进胚胎发育的转录调控新机制
  6. 未来标准化、低风险的P2P模式
  7. 100款机器学习数据集
  8. 【STM32+cubemx】0029 HAL库开发:HMC5883L磁力计的应用(电子指南针)
  9. leetcode(17~30)
  10. 筛选后系列填充_Excel2013里筛选后复制粘贴制作成绩表方法大剖析,3分钟搞定...
  11. SUM(CASE WHEN ?? THEN ?? ELSE ?? END) AS ??
  12. 微信怎样开通账户升级服务器,微信支付商户账户升级常见问题
  13. 2021年金属非金属矿山井下电气考试内容及金属非金属矿山井下电气免费试题
  14. Adobe Creative Cloud for mac无法连接至服务器的解决方法
  15. 跟我学 UML 系统建模
  16. 空气净化器排名十强 空气净化器哪个品牌好
  17. 关于ARM Kinetis MCU唤醒源NVIC和AWIC的工作过程解惑
  18. 111-STM32+Air724UG基本控制篇(自建物联网平台)-基础搭建测试-Android扫码绑定Air724,并通过MQTT和模组实现远程通信控制
  19. MySQL(九):锁、表锁、行级锁、Gap Lock、Next-Key Lock
  20. 产品如何使用蓝湖 简单操作

热门文章

  1. cmake卸载 ubuntu_ubuntu卸载/更新Cmake
  2. oracle实现分段,用Oracle分段空间管理功能改进数据库性能
  3. odp.net连接oracle9i 出错解决_机电工程老出错?机电安装质量通病防治手册,解决常见多发问题...
  4. java 多个类共用属性_java中读写Properties属性文件公用方法详解
  5. foxtable制作管理系统实例_某河道治理工程实例
  6. httpclient 设置短连接_HTTP长连接、短连接使用及测试
  7. 【转】自然语言系列学习之表示学习与知识获取(二)word2vec
  8. 分享几段祖传的Python代码,拿来直接使用!
  9. 2020年 HackerEarth 调查:Go 语言成为最受欢迎的语言 开发者最关心职业发展路径...
  10. 答应我,别再if/else走天下了可以吗