设为首页 收藏本站
查看: 685|回复: 0

[经验分享] Git .gitignore文件的使用

[复制链接]

尚未签到

发表于 2018-1-15 19:00:27 | 显示全部楼层 |阅读模式
  本文转载自 http://blog.csdn.net/xmyzlz/article/details/8592302
  在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。这个文件每一行保存了一个匹配的规则例如:
  # 此为注释 – 将被 Git 忽略
  *.a       # 忽略所有 .a 结尾的文件
  !lib.a    # 但 lib.a 除外
  /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
  build/    # 忽略 build/ 目录下的所有文件
  doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
  这样设置了以后 所有的 .pyc 文件都不会添加到版本库中去。
  另外 git 提供了一个全局的 .gitignore,你可以在你的用户目录下创建 ~/.gitignoreglobal 文件,以同样的规则来划定哪些文件是不需要版本控制的。
  需要执行 git config --global core.excludesfile ~/.gitignoreglobal来使得它生效。
  其他的一些过滤条件
  
    * ?:代表任意的一个字符
  * *:代表任意数目的字符
  * {!ab}:必须不是此类型
  * {ab,bb,cx}:代表ab,bb,cx中任一类型即可
  * [abc]:代表a,b,c中任一字符即可
  * [ ^abc]:代表必须不是a,b,c中任一字符
  由于git不会加入空目录,所以下面做法会导致tmp不会存在 tmp/*             //忽略tmp文件夹所有文件
  
    改下方法,在tmp下也加一个.gitignore,内容为
  *
  !.gitignore
  还有一种情况,就是已经commit了,再加入gitignore是无效的,所以需要删除下缓存
  git rm -r --cached ignore_file
  注意: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
  
    正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
  git update-index --assume-unchanged PATH    在PATH处输入要忽略的文件。
  另外 git 还提供了另一种 exclude 的方式来做同样的事情,不同的是 .gitignore 这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。而 .git/info/exclude 这里设置的则是你自己本地需要排除的文件。 他不会影响到其他人。也不会提交到版本库中去。
  .gitignore 还有个有意思的小功能, 一个空的 .gitignore 文件 可以当作是一个 placeholder 。当你需要为项目创建一个空的 log 目录时, 这就变的很有用。 你可以创建一个 log 目录 在里面放置一个空的 .gitignore 文件。这样当你 clone 这个 repo 的时候 git 会自动的创建好一个空的 log 目录了。
  

今天小涛遇到了一个问题,就是用git提交的时候有很多不必要的文件也被提交了,现在就想,有没有一中办法吧不必要的文件进行忽略掉,百度了一下,找到了,就是新建.gitignore然后再里面声明要忽略的文件夹或者文件就可以了,不过麻烦又来了,因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件。具体步骤如下:  1. 在需要创建  .gitignore 文件的文件夹, 右键选择
  Git Bash 进入命令行,进入项目所在目录。
  2. 输入 touch .gitignore 在文件夹就生成了一个“.gitignore”文件。
  然后在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。
  3.然后用编辑器打开这个文件进行编辑就行了。如果你很牛,熟悉linux下的vi编辑的命令,也可以用命令来声明规则额。在这里就不说了额,
  附: vi编辑器的怎么换行呢?
  总结:vi保存退出命令x和wq的区别
  搜集:不会linux下vi命令,伤不起啊
  4.然后就写规则来操作要忽略的文件了。.gitignore文件过滤有两种模式,开放模式和保守模式
  4.1开放模式负责设置过滤哪些文件和文件夹
  eg:
  过滤文件夹设置:
  /mtk/       表示过滤这个文件夹
  过滤文件设置
  指定过滤某种类型的文件:
  *.zip
  *.rar
  *.via
  *.tmp
  *.err
  指定过滤某个文件:
  /mtk/do.c
  /mtk/if.h
  4.2 b保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。
  跟踪某个文件夹
  !/plutommi/mmi
  跟踪某类文件
  !*.c
  !*.h
  跟踪某个指定文件
  !/plutommi/mmi/mmi_features.h
  4.3.配置.gitignore 的简易原则
  采用共享模式与保守模式结合配置的办法。eg:一个文件夹下有很多文件夹和文件,而我只想跟踪其中的一个文件,这样设置就可以满足这种情况,先用共享模式把整个目录 都设置为不跟踪,然后再用保守模式把这个文件夹中想要跟踪的文件设置为被跟踪,配置很简单,就可以跟踪想要跟踪的文件。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435436-1-1.html 上篇帖子: Windows 下如何Git下载 Android源码 下篇帖子: git使用遇到的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表