.gitignore 文件是忽略文件,是不需要git 去跟踪的文件,忽略的文件只存在于你的本地,不需要提交到git仓库,比如pod文件。
创建gitignore:
1、touch .gitignore 2。open .gitignore
粘贴:
#CocoaPods
Pods/
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
# Mac OS X Finder and whatnot
.DS_Store
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
## Other
*.moved-aside
*.xcuserstate
*.xccheckout
## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM
此文件要在工程目录的根目录下创建,最外层:
其实在coding上创建项目的时候要注意将readme 和 gitignore勾选,这样拉下来的项目就含有gitignore文件了。
如果该文件不可见,可以使用以下命令:(都是全局改变)
对于OS X Mavericks 10.9:
defaults write com.apple.finder AppleShowAllFiles TRUE
对于以前的OS X版本,
efaults write com.apple.Finder AppleShowAllFiles TRUE
此时可能你会发现,即便使用了以上指令仍然看不到,那么你需要重启一下finder
指令:killall Finder
这样就能看到gitignore文件了,并把该文件提交到版本库。等再次提交代码时,里面的忽略文件就不会再出现了。
#####.gitignore 的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c); 问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(**)表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等
```
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
```
#####注意 有时候添加了gitignore 发现不起作用
如果gitignore 是随着工程创建的时候添加的,那么后续跟踪的文件都会被筛选出来,如果是半路添加的,可能因为里面要过滤的文件已经存在于仓库被跟踪的状态,所以就不会成功。
解决:
```
1、 进入工程,终端输入: git ls-files 查看都跟踪了哪些文件,如下图,说明Pods/下的文件都被跟踪了,其实是不需要的
```
```
2、从仓库中移除不需要跟踪的文件 git rm -r --cached 文件名/ -f
如:git rm -r --cached Pods/ -f ,下图显示已经移除
```
```
3、检查是否移除干净 git ls-files
4、暂存修改,提交仓库
```
好啦,现在仓库里都是干净的文件了,都看到这了,留个小爱心再走吧,嘿嘿~