.gitignore
- .gitignore文件用来
忽略
指定文件或者文件夹的修改; - 被记录在.gitignore中的文件或文件夹,会被Git忽略,不会推到远程仓库;
- 文件已存到远程仓库中,添加到.gitignore文件,是无法忽略的;
记录顺序:
- 一、.gitignore文件;
- 二、两种过滤模式;
- 三、通配符;
- 四、已提交到远程的文件,想忽略它;
一、.gitignore文件
- 终端,遍历到项目文件路径:
- 创建.gitignore
touch .gitignore
- 打开gitignore
vim .gitignore
- 输入配置配置 (示例:Xcode项目忽略的文件)
# Xcode
.DS_Store
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
## Other
*.moved-aside
*.xccheckout
*.xcworkspace
!default.xcworkspace
## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM
# CocoaPods
Pods
!Podfile
!Podfile.lock
# Carthage
Carthage/Build
# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
# Code Injection
iOSInjectionProject/
生成配置的网站

在网站上输入Objective-C和Swift会生成一份配置;

参考资源:
https://bingozb.github.io/37.html
https://www.cnblogs.com/haiq/archive/2012/12/26/2833746.html
https://www.cnblogs.com/kevingrace/p/5690241.html
二、两种过滤模式
.gitignore文件过滤有两种模式:
- 开放模式
- 保守模式
1- 开放模式
- 过滤文件夹
build/
- 过滤文件
*.ipa
fastlane/report.xml
fastlane/* //fastlane目录下的所有内容,包括子目录;
/fastlane/* //根目录下,/fastlane/目录的所有内容;
2- 保守模式
- 通过
!
设置不过滤哪些文件,即希望这些文件的修改会被Git跟踪;
!Podfile
!src/
- 使用场景:
需要过滤文件夹下的大部分文件,只跟踪其中一个文件:
fastlane/* //注意:文件夹后要加上/*,否则无法实现效果;
!fastlane/report.xml
三、通配符
-
!
表示不忽略; -
*
匹配任意字符; -
?
匹配一个字符; -
[]
匹配括号内的单个字符; -
-
表示连贯的字符; -
^
表示除外;
*.log
demo_1?.txt
demo[0-9] //匹配0~9的单个字符;
demo[^0-9] //匹配除去0~9的单个字符
四、已提交到远程的文件,想忽略它
- 1- 先添加文件到
.gitignore
文件中; - 2-
git rm -r --cached .
命令删除本地目录的缓存
; - 3- 更新到远程;
git rm -r --cached .
git add .
git commit -m "更新gitignore文件"
git push origin master
清除单个文件的缓存:
git rm --cached <文件>
.gitkeep的作用
Git无法追踪一个空文件夹
:
- 用户需要追踪一个空文件夹时,把
.gitkeep
文件放到文件夹下里; - 在.gitignore中添加需要忽略的文件夹;
# .gitignore
work/*
!.gitkeep
Git忽略work文件夹下,除.gitkeep
外的所有文件;
Git就可以实现追踪空文件夹;
网友评论