忽略特殊文件

忽略特殊文件

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C#遍历Dictionary

    C#遍历Dictionary方法推荐:http://www.cnblogs.com/roucheng/p/3521864.html

    2021年12月25日
    49
  • 组织切片技术的原理(黄瓜怎么切片)

    第一种切片机制——FileInputFormat1.切片的机制1.切片的机制简单地按照文件的内容长度进行切片切片大小,默认等于Block大小切片时不考虑数据集整体,而是逐个针对每一个文件单独切片…

    2022年4月13日
    38
  • 2021年河北高考成绩位次怎么查询,2021年河北高考一分一段表查询排名方法 成绩排名位次什么时候公布…

    2021年河北高考成绩位次怎么查询,2021年河北高考一分一段表查询排名方法 成绩排名位次什么时候公布…河北高考填报志愿最关键的第一步,就是在河北高考一分一段表查询排名方法考生要在“一分一段表”中查找与自己成绩相对应的分数排名,以及这一位次的成绩共有多少考生,以此来确定个人成绩在全省的位置。同时查一下自己的目标院校在往年的录取线是多少,该院校的录取线在当年“一份一段表”中的位置再查一下该院校在当年的招生人数,参照今年的招生计划人数,综合判断自己今年的位置是否能够被目标院校录取。河北高考成绩排名位次一…

    2022年7月16日
    46
  • Jquery tmpl的使用

    Jquery tmpl的使用jquerytmpl简介:动态请求数据更新页面非常常用的方法,例如博客评论的分页动态加载,微博的滚动加载和定时请求加载以及ajax请求返回数据等。这些情况下,动态请求返回的数据一般不是已拼好的html就是JSON或XML,总之不在浏览器端拼接数据就在服务器端拼接数据。浏览器端根据JSON生成HTML有个很苦恼的地方就是,结构不复杂的时候还好,结构一复杂,就需要很小心的写出几乎无法维护的javas…

    2022年6月25日
    55
  • java 静态内部类 实例化_内部类及静态内部类的实例化「建议收藏」

    java 静态内部类 实例化_内部类及静态内部类的实例化「建议收藏」内部类的实例化如果内部类未声明为static,在实例化时首先需要new一个外部类的对象。并通过p.newInner()的方式new内部类,表明这个内部类指向该外部类。内部类的class类型为:Parent.Inner,而不是p.Inner,这个需要和new的方式区分开。publicclassTest{publicstaticvoidmain(String[]args){Pare…

    2022年10月9日
    0
  • LARGE_INTEGER类型和QueryPerformanceFrequency()「建议收藏」

    LARGE_INTEGER类型和QueryPerformanceFrequency()「建议收藏」LARGE_INTEGER类型和QueryPerformanceFrequency()LARGE_INTEGERLARGE_INTEGER是union,用于表示一个64位有符号整数值,其他定义如下:Typedefunion_LARGE_INTEGER{Struct{ DWORD  LowPart;    LONG    HighPart;    };LO…

    2022年7月16日
    9

发表回复

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

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