1. 【学了就忘】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 两个未被追踪的文件被忽略掉了。
2. 怎样让Git忽略当前已经更改的文件
在你的git目录下创建一个.gitignore文件,打开之后把要忽略的文件或者文件夹添加进去。比如我要忽略bin目录,就加一行/bin,如果要忽略一个图像文件,就加一行/xxx.jgp
3. 如何给android studio配置git忽略文件
svn,git,github这些设置忽略时都是一样的。 Settings --> Version Control --> Ignored Files --> 点击右上角的加号,选择你要忽略的文件就行了。 可以添加三种类型: 指定的文件,文件夹,还有匹配。
4. git配置忽略文件(已提交文件和目录的忽略)
git 配置语法:
斜杠 / 开头表示目录;
星号 * 通配多个字符;
问号 ? 通配单个字符
方括号 [] 包含单个字符的匹配列表;
叹号 ! 表示不忽略(跟踪)匹配到的文件或目录;
此外,git 对于 . gitignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
我们在使用git对项目进行版本管理的时候,总有一些不需要提交到版本库里的文件和文件夹,这个时候我们就需要让git自动忽略掉一下文件。
举例说明:
注:一定要设置好规则顺序,*python__/ 和!testpython__/test.txt 设置这两规则时,*python__/ 规则要在!testpython__/test.txt规则之前,这样才能使testpython__/test.txt些文件不被忽略
但是往往对于已经提交的文件,在 .gitignore 文件中添加其目录是不会让提交列表中的目录消失的,假如之前没将 test 目录添加到 .gitignore 文件中,提交代码的时候又把 test 目录提交上去了,那后面在 .gitignore 文件中添加 test 目录是不会让提交列表中的 test目录消失的,这个时候我们就需要使用命令删除暂存区中的 test 目录
开发过程中可能还会遇到这样的情况,某个文件没有修改好,但是又要提交代码, 想这次忽略这个文件,下一次提交时再去提交它。
5. 使用Git时,怎么忽略不想上传的文件
在进行协作开发代码管理的过程中,常常会遇到某些临时文件、配置文件、或者生成文件等,这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push,这样会引起开发上的不便。
Git可以很方便的帮助我们解决这个问题,那就是建立项目文件过滤规则。
git中提供两种过滤机制,一种是全局过滤机制,即对所有的git都适用;另一种是针对某个项目使用的过滤规则。个人倾向于第二种。
以我的一个项目为例,该项目用.net开发,.config文件、包括生成的bin/Debug, bin/Release文件等,我希望不加入git管理。
在代码目录下建立.gitignore文件:vim .gitignore ,内容如下:
[plain] view plain
#过滤数据库文件、sln解决方案文件、配置文件
*.mdb
*.ldb
*.sln
*.config
#过滤文件夹Debug,Release,obj
Debug/
Release/
obj/
然后调用git add. ,执行 git commit即可。