美文网首页iOS
ios 忽略文件 .gitignore

ios 忽略文件 .gitignore

作者: 稻壳_互联网创变者 | 来源:发表于2019-04-18 14:26 被阅读84次

有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如项目相关的配置文件啦,开发工具自动生成的一些日志啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。

好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

那么如何做好一个项目的.gitignore呢?

添加.gitignore文件

  • 终端输入
    (1)defaults write com.apple.finder AppleShowAllFiles -boolean true //显示系统隐藏文件夹
    (2)killall Finder//重启Finder

  • 首先要添加或者创建一个.gitignore文件,进入项目对应路径可使用以下代码创建:touch .gitignore(如果已经创建,可忽略此步骤)

  • 打开:open .gitignore

  • 复制粘贴以下代码


# Created by https://www.gitignore.io/api/xcode

### Xcode ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData/

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint

### Xcode Patch ###
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddat
!*/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlista/
!*.xcworkspace/contents.xcworkspacedata
/*.gcno


# End of https://www.gitignore.io/api/xcode



# Created by https://www.gitignore.io/api/cocoapods

### CocoaPods ###
## CocoaPods GitIgnore Template

# CocoaPods - Only use to conserve bandwidth / Save time on Pushing
#           - Also handy if you have a large number of dependant pods
#           - AS PER https://guides.cocoapods.org/using/using-cocoapods.html NEVER IGNORE THE LOCK FILE
Pods/
Podfile.lock
.DS_Store

# End of https://www.gitignore.io/api/cocoapods

其他语言.gitignore配置参考:https://github.com/github/gitignore


.gitignore规则不生效

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
进入项目对应路径后
git rm -r --cached .
git add .
git commit -m 'update .gitignore'


Git 忽略规则匹配语法

在 .gitignore 文件中,每一行的忽略规则的语法如下:

空格不匹配任意文件,可作为分隔符,可用反斜杠转义
# 开头的模式标识注释,可以使用反斜杠进行转义
! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
/ 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
/ 开始的模式匹配项目跟目录
如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
**匹配多级目录,可在开始,中间,结束
?通用匹配单个字符
[]通用匹配单个字符列表


常用匹配示例:

bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 忽略根目录下的bin文件
/.c: 忽略 cat.c,不忽略 build/cat.c
debug/
.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
/foo: 忽略/foo, a/foo, a/b/foo等
a/
/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略当前路径的 config.php 文件

相关文章

网友评论

    本文标题:ios 忽略文件 .gitignore

    本文链接:https://www.haomeiwen.com/subject/tpzzwqtx.html