git

Git中.gitignore说明

Git中.gitignore说明

920 发布: 2022/2/10 13:10 本文总阅读量

前言

项目使用git管理版本的时候没有配置忽略文件.gitignore文件,就会导致每次提交的时候都会出现UserInterfaceState.xcuserstate(视图修改缓存文件),Breakpoints_v2.xcbkptlist(断点调试缓存文件)这两个文件被修改.

解决方案

1、创建.gitignore文件
2、将下列代码复制到该文件

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

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Pods/

3、执行代码提交的操作

注意

如果上面的操作没能成功忽略掉.gitignore中的文件,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的.

需要继续执行下面的操作:

先把本地缓存删除(改变成未track状态),一般删除项目中全部缓存,然后再提交.命令行操作如下:

git rm -r --cached .
git add .
git commit -m ‘update .gitignore’

语法规范

  • 空行或是以#开头的行即注释行将被忽略;
  • 可以在前面添加正斜杠/来避免递归,下面的例子中可以很明白的看出来与下一条的区别;
  • 可以在后面添加正斜杠/来忽略文件夹,例如build/即忽略build文件夹;
  • 可以使用!来否定忽略,即比如在前面用了*.ipa,然后使用!a.ipa,则这个a.ipa不会被忽略;
  • *用来匹配零个或多个字符,如*.[oa]忽略所有以.o.a结尾;
  • *~忽略所有以~结尾的文件(这种文件通常被许多编辑器标记为临时文件);
  • []用来匹配括号内的任一字符,如[abc],也可以在括号内加连接符,如[0-9]匹配0至9的数;
  • ?用来匹配单个字符.

举栗:

# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
/TODO
# 忽略 build/ 文件夹下的所有文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf