Git不使用ignore文件来实现文件忽略
场景描述
在实际的开发工作中,尤其是在使用 Idea 的过程中,会产生很多新的文件,当然指那么不能或者没必要纳入版本库的文件(比如.iml
和.idea
文件等),但是每次查看文件状态时都会提示这些文件不在版本库中,比如:
正常修改代码后,使用 Idea 提交代码时,修改的文件不会跟这些未纳入版本库的文件在同一个目录:
如果我们仅仅是修改代码(不新增文件),那么在提交代码的时候还是比较明确的,只需要关注修改的文件即可!
但是假如你新增了一个文件的话,比如我新增了一个名为test.java
的文件,那么在提交代码时:
有人肯定会说:为什么不在.gitignore
文件中将那些不需要纳入版本控制的文件忽略掉呢???第一:我们的项目代码中没有.gitignore
文件,至于为什么没有我不清楚,反正我也不想自己去添加一个.gitignore
文件;第二:实际上仅仅添加一个或几个文件的话,其实可以用终端执行命令git add <文件名>
来实现,但是我认为既然都用图形界面了,没必要再混用命令了吧!
那么,怎么才能在不给项目添加.gitignore
文件的同时,实现文件的忽略呢?
解决方案
方式一:项目级别忽略
我们知道,项目级别的忽略是需要在项目中添加.gitignore
文件来实现的,但是 Git 也提供了另外一种解决方案,让用户在不使用.gitignore
文件的同时,同样实现项目级别的文件忽略,这就是exclude
!
不同的是:.gitignore
这个文件本身会被提交到项目版本库中去,用来保存的是公共的需要排除的文件,也就是每个项目参与者都要排除的文件;而.git/info/exclude
这里设置的则是你自己本地需要排除的文件,不会影响到其他人,也不会提交到版本库中去!
如想要忽略项目中所有的.iml
文件以及.log
文件等,需要在项目根目录下的.git/info/exclude
中添加如下内容:
这样就可以直接忽略掉项目中的这些文件了!
方式二:全局级别忽略
Git 还提供了另外一个在不添加.gitignore
文件的前提下进行全局忽略的解决方案(这个忽略对本机所有的版本库都有效):在用户目录下创建一个文件,在文件中编辑忽略规则!具体的操作步骤如下(以 Windows 系统为例)。
**第一步:在用户目录下创建.gitignore_global
**文件
第二步:按照正常.gitignore
文件的写法,编辑需要全局忽略的文件
这里的设置,就是忽略所有名为rebel.xml
的文件!
第三步:打开Dos并执行如下命令(没报错就表示执行成功了)
1 | git config --global core.excludesfile .gitignore_global |
第四步:验证,接着在Dos中执行如下命令
1 | git config --list |
当发现输出结果中多出了一条如下配置,说明配置成功:
这样一来,Git 就会全局忽略掉名为rebel.xml
的文件了!
总结归纳
以上两种不添加.gitignore
文件的同时实现文件忽略的方式,我更推荐第一种exclude
方式,这种方式不仅影响范围小(只对具体的版本库有效),而且操作简单(不用新增文件和执行命令)!
~~
~~
~~