场景描述

在实际的开发工作中,尤其是在使用 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方式,这种方式不仅影响范围小(只对具体的版本库有效),而且操作简单(不用新增文件和执行命令)!

~~

~~

~~