==============================gitignore文件中配置的不会被放入版本管理中=============================================
一般某个项目dev过程中都会产生一些中间文件,这些文件是我们不想要追踪的。
git中可以使用.gitignore文件来忽略这些文件。
在需要的目录下面 添加 .gitignore文件
文件中每一行表示需要忽略的文件的正则表达式。
$cat .gitignore
#ignore .metadata
.metadata
.gitignore
#ignore obj and lib file
*.[oa]
当前的目录情况
$ls -al
total 24
drwxr-xr-x 4 root root 4096 2010-12-11 12:44 .
drwx------ 51 root root 4096 2010-12-11 12:44 ..
drwxr-xr-x 8 root root 4096 2010-12-11 12:44 .git
-rw-r--r-- 1 root root 39 2010-12-11 12:44 .gitignore
drwxr-xr-x 3 root root 4096 2010-08-19 20:01 .metadata
-rw-r--r-- 1 root root 52 2010-12-11 12:41 test.txt
如果没有添加该文件,git status会报有这些文件没有track。
$git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .metadata/
# gitignore
而 添加了该文件后,就可以看到,这个workspace 就是干净的了。
$mv gitignore .gitignore
[root@~/workspace]
$git status
# On branch master
nothing to commit (working directory clean)
这个.gitignore很简单,当前目录下有个.metadata,这个是我们不需要的,所以就写入了文件。另外如果不加.gitignore这行,git会把.gitignore也加入版本控制中。
=========================================.gitignore配置规则===================================
.gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得。
1、配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
2、示例:
(1)规则:fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
(2)规则:/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
(3)规则:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;