使用 git 做代码管理工具时,设置 gitignore 是必不可少的流程,一些系统或者 IDE 会在目录下生成与项目不相关的文件,而这些文件我们不期望被提交到仓库之中。理解 gitignore 的 pattern 规则十分重要。我要说话

Pattern 规则

关于 Pattern 规则,可以查看 git 的相关文档:http://git-scm.com/docs/gitignore,大致有以下几点:我要说话

  1. 空行不匹配任何内容,所以可以作为块分隔符;
  2. # 开头表示注释,如果相匹配 #,可以在前面加一个反斜杠,即 \#
  3. 除非加了反斜杠,否则一连串的空格会被忽略;
  4. 如果在匹配的内容前面加上 !,则这些匹配过的部分将被移出,如果要匹配以 ! 开头的内容,需要加上反斜杠,如 \!important.txt
  5. 如果一个匹配 pattern 后面有一个斜杠,如 foo/,则默认会匹配所有(包含父子文件夹)中的 foo 文件夹内容,并且它不会匹配单个的文件;
  6. 如果一个匹配 pattern 不包含斜杠,如 foo,Git 会将其作为一个 shell 的查找命令匹配内容。

需要注意的 **:我要说话

  • 如果一个 pattern 以 ** 开头,如 **/foo,最后会匹配所有文件夹下的 foo 文件(夹);
  • 如果一个 pattern 以 /** 开头,如 abc/**,则表示匹配 abc 目录下的所有内容;
  • 如果一个 pattern 中间包含 **,如 a/**/b,则会匹配 a/ba/x/ba/x/y/b 以及所有类似的内容。

gitignore 相关的问题

匹配示例

如果我们要匹配 ‘foo’ 目录下除去 ‘foo/bar/‘ 的内容,可以这样做:我要说话

foo/!foo/bar/

如果要匹配所有目录下的 node_modules 文件夹,只需要这样做:我要说话

node_modules/

如果要匹配所有的 json 文件,可以这样做:我要说话

*.json

git 操作中,add 之后再加入 gitignore

Git 操作中经常会出现这样的问题,当我们 git add 之后,突然想起来要添加一个 gitignore 文件,但是一些诸如 node_modules/, cache/ 等文件已经被 add 进去了,这些文件不会被 ignore 掉,怎么办?我要说话

最直接的方式是:我要说话

# 这一步的操作相当于回到 git add 上一步git rm -r --cached .# 然后重新 addgit add --all .

git 添加空文件夹

Git 默认是不添加空文件夹的,如果一定要加入这个文件夹,有以下方案:我要说话

1)在文件夹添加文件,然后删除我要说话

2)在文件夹中添加一个 .gitkeep 文件我要说话

让 git 不要添加 gitignore 文件

如果在 .gitignore 文件中添加我要说话

.gitignore

你会发现,并没有起作用, .gitignore 文件依然被加到了 git 中,为什么会有这个需求呢?有些人在本地开发的时候有一些其他的文件夹名不愿意让别人看到,虽然在 gitignore 中被忽略了,但是 .gitignore 文件中依然可以看到这些文件夹名字。我要说话

其实没有什么好的办法处理这个问题,.gitignore 做多人协作开发的时候可以直接根据同一份 gitignore 过滤文件,如果一定要做,可以从 add 中在 remove 掉:我要说话

git rm --cached .gitignore

Git 操作涉及的命令巨多,但是日常开发中用到的就那么几个,把原理搞清楚,用起来得心应手。我要说话

转载:http://www.barretlee.com/blog/2015/09/06/set-gitignore-after-add-file/

用对 gitignore相关推荐

  1. .gitignore文件如何编写?

    .gitignore文件即 项目中不需要被追踪(track)且上传到git系统的文件 <1>忽略文件的原则 a.忽略操作系统自动生成的文件,比如缩略图等 b.忽略编译生成的中间文件.可执行 ...

  2. ios 项目的.gitignore

    git作为代码管理工具,.gitignore文件用来忽略哪些哪些文件不用添加到仓库管理https://www.gitignore.io/ 这个网址输入变成语言会帮你生成常用的忽略文件如:IOS项目,输 ...

  3. git ignore linux,为什么说.gitignore不能忽视

    我注意到很多开发者没有使用 .gitignore 文件,尽管使用 .gitignore 文件来指定你不希望 Git 在版本控制中跟踪的文件是最佳实践之一..gitignore 可以提高代码质量,所以你 ...

  4. 如何创建.gitignore文件,忽略git不必要提交的文件

    1.在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录. 2.输入 touch .gitignore ,生成".gitignore&qu ...

  5. [转]Git忽略规则及.gitignore规则不生效的解决办法

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件).这个文件每一行保存了一个匹配的规则例如: # 此为注 ...

  6. .gitignore 无效及解决办法

    为什么80%的码农都做不了架构师?>>>    对应已经归档到git控制中的文件及目录,在.gitignore忽略会出现无效的情况,留爪. ##.gitignore介绍 如果想忽略掉 ...

  7. Git中.gitignore忽略文件(maven项目)

    使用情景: 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们 解决方案: 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略 ...

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

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

  9. Git 中.gitignore 使用和.gitignore 无效的解决方法

    昨天把新公司的项目提交到了 GitLab 上,感觉 GitLab 创建项目很简洁并没有看到设置 Git版本忽略文件的选项. 然后就直接提交了上去.可是烦人的事来了,Xcode 的缓存文件和一些系统目录 ...

  10. IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法

    IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法 参考文章: (1)IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法 (2) ...

最新文章

  1. 用python分析excel数据_Python3分析Excel数据
  2. CentOS7重新生成 /boot/grub2/grub.cfg
  3. 为什么要选择Apache Pulsar:IO隔离
  4. GContracts1.1.0支持前置/后置条件的继承
  5. 38. Leetcode 101. 对称二叉树 (二叉树-二叉树性质)
  6. Shiro <shiro:hasPermission >标签不生效,shiro权限不生效原因
  7. 阿克斯java表_java 入门第三季的6-5 作业, 希望大家指点
  8. TurboMail邮件系统实用技巧十四:如何知道对方已经读信
  9. SAP Spartacus里的bootstrap button usage
  10. rjdbc读取mysql_R通过RJDBC连接外部数据库 (转)
  11. 量子纠缠(三)——波尔和爱因斯坦之争
  12. 给它一个REST:对您的API使用GraphQL
  13. java.util.Date和java.sql.Date的区别及应用
  14. 语音识别遇到的困难 - 浅谈语音识别技术的发展趋势与应用前景
  15. cad灯具图标_CAD图纸灯具图例
  16. 标识解析数据网关IDG S800发布上线
  17. 计算机工程师相关政策,计算机中级工程师论文发表(发表时机和要求)
  18. 人工智能导论测试题——第1章绪论
  19. 泡泡一分钟:Perception-aware Receding Horizon Navigation for MAVs
  20. springboot的最核心的27个注解详解

热门文章

  1. 7-2 字符串逆序 (15 分)
  2. java连接打印机访问被拒绝_java – 尝试访问spring security中的登录页面时访问被拒绝的异常...
  3. microsoft visual c++ 编译c语言,Microsoft Visual C++ 程序的部署方法
  4. catti二级笔译综合能力真题_CATTI 二级口笔译教材、真题和模拟试题汇总!
  5. 系统提示服务器响应错误,Win10系统无法打开软件提示“服务器没有及时响应或控制请求”错误的解决方法...
  6. 使用Kubeadm搭建Kubernetes(1.12.2)集群
  7. 【Android进阶】Junit单元測试环境搭建以及简单有用
  8. The easy way to implement a Red-Black tree
  9. centos6.5 403 Forbidden 设置了777还是不行
  10. background-position 用法介绍