第四章 git版本控制之 .gitignore文件过滤
1、 手动写规则
.gitignore位置文件位于和.git目录同级目录下(缺省不存在,若想过滤文件,需手动创建)
首先要强调一点,这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”。这样没有扩展名的文件在Windows下不太好创建,这里给出win7的创建方法:
创建一个文件,文件名为:“.gitignore.”,注意前后都有一个点。保存之后系统会自动重命名为“.gitignore”。
一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。实际项目中,很多文件都是不需要版本管理的,比如safety下lib文件和一些包含密码的配置文件等等。
.gitignore文件内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。
下面我们看看常用的规则:
/mtk/ 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/do.c 过滤某个具体文件
被过滤掉的文件就不会出现在你的远程库中了,当然本地库中还有,只是push的时候不会上传。
需要注意的是.gitignore文件还可以指定要将哪些文件添加到版本管理中:
!*.zip
!/mtk/one.txt
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。
例如:我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理。那么我们就需要使用:
/mtk/
!/mtk/one.txt
假设我们只有过滤规则没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。
2、 利用TortoiseGit实现忽略指定的文件
选中需要被忽略的文件,右键--add to ignore list--选择对应的文件类型:
例如:push时忽略README.md文件,选中README.md文件,右键--add to ignore list--选择对应的文件类型:*.md
这时,如果原先没有.gitignore文件,则会在同级目录下生成该文件,README.md文件此时已被忽略了;
1、 手动写规则
.gitignore位置文件位于和.git目录同级目录下(缺省不存在,若想过滤文件,需手动创建)
首先要强调一点,这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”。这样没有扩展名的文件在Windows下不太好创建,这里给出win7的创建方法:
创建一个文件,文件名为:“.gitignore.”,注意前后都有一个点。保存之后系统会自动重命名为“.gitignore”。
一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。实际项目中,很多文件都是不需要版本管理的,比如safety下lib文件和一些包含密码的配置文件等等。
.gitignore文件内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。
下面我们看看常用的规则:
/mtk/ 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/do.c 过滤某个具体文件
被过滤掉的文件就不会出现在你的远程库中了,当然本地库中还有,只是push的时候不会上传。
需要注意的是.gitignore文件还可以指定要将哪些文件添加到版本管理中:
!*.zip
!/mtk/one.txt
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。
例如:我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理。那么我们就需要使用:
/mtk/
!/mtk/one.txt
假设我们只有过滤规则没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。
2、 利用TortoiseGit实现忽略指定的文件
选中需要被忽略的文件,右键--add to ignore list--选择对应的文件类型:
例如:push时忽略README.md文件,选中README.md文件,右键--add to ignore list--选择对应的文件类型:*.md
这时,如果原先没有.gitignore文件,则会在同级目录下生成该文件,README.md文件此时已被忽略了;