忽略特殊文件

忽略特殊文件

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758404317281e54b6f5375640abbb11e67be4cd49e0000

有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。

好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

举个例子:

假设你在Windows下进行Python开发,Windows会自动在有图片的目录下生成隐藏的缩略图文件,如果有自定义目录,目录下就会有Desktop.ini文件,因此你需要忽略Windows自动生成的垃圾文件:

# Windows: Thumbs.db ehthumbs.db Desktop.ini 

然后,继续忽略Python编译产生的.pyc.pyodist等文件或目录:

# Python: *.py[cod] *.so *.egg *.egg-info dist build 

加上你自己定义的文件,最终得到一个完整的.gitignore文件,内容如下:

# Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa 

最后一步就是把.gitignore也提交到Git,就完成了!当然检验.gitignore的标准是git status命令是不是说working directory clean

使用Windows的童鞋注意了,如果你在资源管理器里新建一个.gitignore文件,它会非常弱智地提示你必须输入文件名,但是在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore了。

有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:

$ git add App.class The following paths are ignored by one of your .gitignore files: App.class Use -f if you really want to add them. 

如果你确实想添加该文件,可以用-f强制添加到Git:

$ git add -f App.class 

或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:

$ git check-ignore -v App.class .gitignore:3:*.class App.class 

Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。

小结

  • 忽略某些文件时,需要编写.gitignore

  • .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113323.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月20日 下午1:00
下一篇 2021年10月20日 下午1:00


相关推荐

  • springboot中postmapping(springboot配置日期参数)

    主要罗列出http的url与GetMapping的对应关系第一种:http://192.168.9.146:8080/Porduce?Message=12222222对应方法如下:@GetMapping(“/Porduce”)publicvoidProduce(StringMessage)throwsIOException{pr…

    2022年4月15日
    49
  • mac idea 激活码_最新在线免费激活

    (mac idea 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    188
  • C 查找窗口,FindWindow用法

    C 查找窗口,FindWindow用法FindWindow 用来根据类名和窗口名来得到窗口句柄的 但是这个函数不能查找子窗口 也不区分大小写 如果要从一个窗口的子窗口中查找需要使用 FindWindowEX nbsp 函数功能 该函数获得一个窗口的句柄 该窗口的类名和窗口名与给定的字符串相匹配 这个函数查找子窗口 从排在给定的子窗口后面的下一个子窗口开始 在查找时不区分大小写 nbsp nbsp nbsp 函数原型 HWNDFindWind

    2025年12月7日
    6
  • MFC:HOOK编程

    MFC:HOOK编程SetWindowsHo 安装一个应用程序定义的 hook 过程到 hook 链中 后安装的 hook 过程在 hook 链的前面 eg MFC 屏蔽当前进程主线程的键盘鼠标消息 HHOOKg hKeyboard NULL HHOOKg hMouse HWNDg hWnd NULL LRESULTCALLB nbsp 鼠标消息过程 nbsp int

    2026年3月16日
    2
  • 嵌入式linux实时操作系统及应用编程pdf(嵌入式linux都有哪些调试信息)

    目录目录前言GDB调试工具介绍GDB调试教程gcc调试相关编译选项GDB交叉调试环境搭建下载地址编译过程总结链接地址前言项目遇到一个问题,就是程序在Ubuntu下运行的时候是正常的,至少大部分时候运行是正常的,但是移到开发板上,就会出现段错误。这时候突然想到了GDB,从来都没有接触过调试工具,以前的调试都是使用printf直接打印的方式!!!

    2022年4月15日
    68
  • Python函数知识点(详解)

    Python函数知识点(详解)本篇总结了 Python 函数相关的基础知识点 代码案例超详细 欢迎阅读 交流

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号