有了这个模板集合,轻松玩转版本控制中的ignore文件
今天小编给各位分享ignore的知识,文中也会对其通过有了这个模板集合,轻松玩转版本控制中的ignore文件和如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!
内容导航:
一、有了这个模板集合,轻松玩转版本控制中的ignore文件
关于ignore文件
如果你也像笔者一样,在软件开发过程中经常使用版本控制(Version Control)工具来对项目中的代码文件进行管理,那么本文就可以继续阅读下去了。
通常我们会用Git
、SVN
两大工具管理项目代码文件,使用Git的代码托管平台常见有:国外的GitHub和国内的oschina,而使用SVN基本上就是自己搭建的服务器。但是并不是所有的文件都需要添加版本控制,也就是add
操作,对应的状态就是untracked
。
比如,编译过程产生的文件、运行过程中产生的日志文件、本地配置文件等。避免跟踪这些非源码性的自动生成的文件除了能够减少与远程仓库中的更新比对操作,一个非常好的作用在于使开发人员专注于源码级文件的历史变更,更加清晰地掌握项目的版本迭代情况。
所以,选择适当的文件添加ignore信息就显得非常重要了。然而,对于不同的编程语言、不同的编译系统、不同的构建工具,很难找到所有需要添加ignore的文件,经常会出现各种遗漏等选择性错误。如果能有一个东西,就像是一个模板,记录所有环境下的ignore信息,在需要的时候便于查询,那就太合适不过了。所以,本文的重点来了,带给你一个全面的ignore集合。
github/gitignore
github/gitignore ,一个有用的全面的.gitignore
模板集合,GitHub地址:https://github.com/github/gitignore
从它在GitHub上的关注度(watch、star、fork数量)就可以看出它的追捧度和欢迎度:
这个开源项目搜集了很多个环境下的ignore模版,涵盖了各种编程语言,各种构建工具,并不断更新中,这里我选择性地列举一些:
Android.gitignore
Gradle.gitignore
C++.gitignore
Objective-C.gitignore
……
好吧,穷举不尽,说服力不强,有图有真相,图中信息展示截止至本文发布之时的状态(可放大一览):
大家可以打开这个项目的地址,针对自己从事的开发工作寻找对应的xxx.gitignore
文件,查看模板下的ignore信息,比如Android.gitignore
:
# Built application files*.apk*.ap_# Files for the ART/Dalvik VM*.dex# Java class files*.class# Generated filesbin/gen/out/# Gradle files.gradle/build/# Local configuration file (sdk path, etc)local.properties# Proguard folder generated by Eclipseproguard/# Log Files*.log# Android Studio Navigation editor temp files.navigation/# Android Studio captures foldercaptures/# Intellij*.iml.idea/workspace.xml# Keystore files*.jks
当然,如果你也可以贡献自己的一份力量,按照项目的贡献规则(Contributing guidelines)提交自己的变更请求,在保证高质量的前提下一起完善这个模板集合,供更多开发者使用。相关操作流程参考README.md
信息。
一、如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件
最近初学Git,而且在使用的IDE是IntelliJ IDEA,发现IDEA在提交项目到本地仓库的时候,会把.idea文件夹中的内容也提交上去,这里面放的是一些项目的配置信息,包括历史记录,版本控制信息等。可以不传到Git上面去。这个时候就需要编写.gitignore文件来忽略提交这些文件。在IDEA中有一个插件.ignore可以帮我们做这件事。
先来看下如何安装。
点击File->Settings
这里写图片描述
在左侧菜单找到Plugins,点击Browse repositories…
这里写图片描述
搜索.ignore,点击Install,安装完成后就可以愉快的使用了,不过在此之前得重启IDEA
这里写图片描述
然而上述方法安装完IDEA再启动的时候可能会报错。。(′ཀ`」∠)_ 不要打我啊,至于为啥我也不知道。那么给你们planB:–ignore
去这个网址下载好压缩包,选择Install plugin from disk。。
这里写图片描述
重启完真的可以用了~!
在项目上右键->New ->.ignore file ->.gitignore file(Git)
这里写图片描述
先选择Example user template好了,以后有什么想过滤的可以自行添加,~最后点击Generate生成
这里写图片描述
然后就会发现被忽略的文件名变成了灰色有木有啊!又可以愉快的提交代码了~
这里写图片描述
也可以右键文件将其加入忽略的名单中
这里写图片描述
下面是一些.gitignore文件忽略的匹配规则:
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
输入:
git rm -r –cached filePath
git commit -m “remove xx”
或者:
git rm -r –cached .
git add .
git commit -m “update .gitignore”
来解释下几个参数 -r 是删除文件夹及其子目录 –cached 是删除暂存区里的文件而不删除工作区里的文件,第一种是删除某个文件,第二种方法就把所有暂存区里的文件删了,再加一遍,相当于更新了一遍。
二、【学了就忘】Git操作 — 55.忽略文件的三种方式
有鉴于此,我们应该寻求一种机制来规避这种事故的发生,在 git 版本控制系统中一般有三种不同的解决方案。
最常用也是最简单的当属 .gitignore 文件。
该方式是在工作中最常用的方式,配置方法是在仓库的根目录下新建 .gitignore 文件,在文件里配置忽略规则,同时把 .gitignore 文件加入版本管理。之后可以同步该配置到远程仓库,其他开发者可更新该文件到本地仓库,与其他克隆仓库共享同一套忽略规则。
.gitignore 文件对其所在的目录,及所在目录的全部子目录均有效。
1)查看当前Git工作目录中文件状态
可以看到有6个未被追踪的文件。
2)在Git仓库的根目录下新建一个名为 .gitignore 的文件
因为是点开头,没有文件名,没办法直接在windows系统中直接创建,要通过Git Bash客户端,用Linux系统的方式新建 .gitignore 文件。
3)将需要忽略的文件写入 .gitignore 文件中
提示:每个文件或者正则匹配占一行。
4)将 .gitignore 文件提交到本地版本库
这样就完成可忽略文件的整个过程了。
用这种方式配置忽略文件,不会同步该设置至远程仓库,只在本机起作用。
配置方法是直接编辑Git仓库根目录下的 .git/info/exclude 文件,把要忽略的规则直接写入,这个方法只在本机当前仓库起效,不会对其他的克隆仓库起效。
1)查看当前Git工作目录中文件状态
可以看到有3个未被追踪的文件。
2)编辑Git仓库根目录下的 .git/info/exclude 文件,配置忽略
3)再次查看当前Git工作目录中文件状态
我们可以看到 local.txt 文件被忽略了。
忽略规则由本机所有仓库共用(也就是对本机的所有Git仓库都起作用),配置方法如下:
Linux中,这时把全局要忽略的文件列表 .gitignore 放当前用户根目录下( ~/.gitconfig ):
Windows中,这时把全局要忽略的文件列表 .gitignore 放当前用户根目录下:
我们以Windows系统为例:
1)查看当前Git工作目录中文件状态
2)创建 .gitignore 忽略文件
我们可以复制用户根目录下的 .gitconfig 文件,并改名为 .gitignore 文件。
注意:
如下:
3)将忽略文件配置到Git全局配置文件 .gitconfig 文件中
通过如下命令进行配置。
执行命令后,查看 .gitconfig 文件内容,如下:
至此之后,所有Git仓库都会自动应用这个 gitignore_global.txt 文件中,所配置忽略的文件。
4)把需要忽略的文件加入到 gitignore_global.txt 文件中
把 gitignore_global.txt 文件中的内容清空,之后添加要忽略的文件。
gitignore_global.txt 文件内容如下:
5)查看 learngit 仓库工作目录文件状态
可以看到 hello.java 和 test.java 两个未被追踪的文件被忽略掉了。
三、如何创建.gitignore文件,忽略git不必要提交的文件
1、.gitignore:在工程实现过程中,会生成一些中间文件,或者在项目中的部分文件是不需要进行版本管理的。对于这些文件应该对于Github来讲是透明的。Github提供这种功能,可以自己指定哪些文件可以不被管理。具体方法是在版本管理的根目录下(与.git文件夹同级)创建一个 .gitignore(gitignore是隐藏文件,所以前面有个点)
gitignore - Specifies intentionally untracked files to ignore
2、使用gitignore文件来解决这个问题,步骤是:
1) touch .gitignore #创建gitignore隐藏文件
2) vim .gitignore #编辑文件,加入指定文件
#下面是gitignore文件的内容
#忽略gitignore文件
.gitignore
#忽略后缀名为.o和.a的文件
*.[oa]
#显示指定忽略名称为main的文件
main
3、文件.gitignore的格式规范:
A:#为注释
B:可以使用shell所使用的正则表达式来进行模式匹配
C:匹配模式最后跟"/"说明要忽略的是目录
D:使用!取反(例如目录中包含 test.a,并且gitignore文件中包含 *.[oa],如果在文件中加入 !test.a 表明忽略除test.a文件以外的后缀名为.a或者.o的文件)
4、配置完.gitignore文件后,执行git status命令,会发现那些文件不再是Untracked files了,也就完成了忽略指定文件的功能。
关于ignore的问题,通过《【学了就忘】Git操作 — 55.忽略文件的三种方式》、《如何创建.gitignore文件,忽略git不必要提交的文件》等文章的解答希望已经帮助到您了!如您想了解更多关于ignore的相关信息,请到本站进行查找!
爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。