Git版本控制.gitignore文件

Git忽略规则。

.gitignore文件。

.gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利.版本库中目录下的.gitignore文件作用于整个目录及子目录,会随着该版本库同其他人共享。文件存放在当前Respositories工作目录下,当然默认是不可见的,可以调用如下命令:

1
2
defaults write com.apple.finder AppleShowAllFiles YES //显示隐藏文件
defaults write com.apple.finder AppleShowAllFiles NO//隐藏不可见文件

然后输入以下命令:

1
2
iMac-7:beibei tianww$ cd /Users/tianww/Documents/ipa_Project/beibei 
iMac-7:beibei tianww$ vim .gitignore

我们会看到以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
*~
.DS_Store
.idea/

# Xcode
#
build/
buildipa/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
xcshareddata/

Pods/
Podfile.lock

*.xcuserdatad
".gitignore" 8501L, 482577C
......

需要注意的是,有些东西是xcode默认会在.gitignore中忽略掉的:比喻在修改了schemes的时候,无论你怎么修改,都看不到在在git里面有修改记录的,其实这个是默认会忽略掉的。这个时候,我们为了统一控制一些东西,就需要修改.gitignore中的内容了,需要将(*.xcuserstate xcshareddata/)两个删除掉,修改成功后提交git,那么所有人的配置就一致了,这个时候我们重新添加刚刚删除的内容,无论别人怎么修改也不会修改默认的统一的配置了。

exclude文件。

本地的针对具体版本库的独享式忽略文件

即在版本库.git目录下的文件info/exclude中设置文件忽略

1
2
3
4
iMac-7:~ tianww$ cd /Users/tianww/Documents/ipa_Project/beibei/.git/info/
iMac-7:info tianww$ ls
exclude refs
iMac-7:info tianww$ vim exclude
core.excludesfile文件。

本地的全局的独享式忽略文件,通过Git的配置变量core.excludesfile指定的一个忽略文件(指定文件名),其设置的忽略对所有本地版本库均有效。设置方法如下(文件名可以任意设置):

1
git config --global core.excludesfile ~/.gitignore

Git忽略文件语法。

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

example:

1
2
3
4
5
6
# 这是注释行,将被忽略
*.a # 忽略所有以.a为扩展名的文件
!lib.a # 但是名为lib.a的文件或目录不要忽略,即使前面设置了对*.a的忽略
/TODO # 只忽略此目录下的TODO文件,子目录中的TODO文件不忽略
build/ # 忽略所有build目录下的文件,但如果是名为build的文件则不忽略
doc/*.txt # 忽略文件如doc/notes.txt,但是文件如doc/server/arch.txt不忽略