有鉴于此,我们应该寻求一种机制来规避这种事故的发生,在 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 两个未被追踪的文件被忽略掉了。
git 配置语法:
斜杠 / 开头表示目录;
星号 * 通配多个字符;
问号 ? 通配单个字符
方括号 [] 包含单个字符的匹配列表;
叹号 ! 表示不忽略(跟踪)匹配到的文件或目录;
此外,git 对于 . gitignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
我们在使用git对项目进行版本管理的时候,总有一些不需要提交到版本库里的文件和文件夹,这个时候我们就需要让git自动忽略掉一下文件。
举例说明:
注:一定要设置好规则顺序,*python__/ 和!testpython__/test.txt 设置这两规则时,*python__/ 规则要在!testpython__/test.txt规则之前,这样才能使testpython__/test.txt些文件不被忽略
但是往往对于已经提交的文件,在 .gitignore 文件中添加其目录是不会让提交列表中的目录消失的,假如之前没将 test 目录添加到 .gitignore 文件中,提交代码的时候又把 test 目录提交上去了,那后面在 .gitignore 文件中添加 test 目录是不会让提交列表中的 test目录消失的,这个时候我们就需要使用命令删除暂存区中的 test 目录
开发过程中可能还会遇到这样的情况,某个文件没有修改好,但是又要提交代码, 想这次忽略这个文件,下一次提交时再去提交它。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)