美文网首页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