美文网首页
Git中忽略某些文件,如系统文件.Ds_store等

Git中忽略某些文件,如系统文件.Ds_store等

作者: EAST4021 | 来源:发表于2019-03-01 13:47 被阅读0次

    1 问题背景

    默认情况下,Mac OS X的Finder程序会在进行存取的每个目录下创建.DS_Store文件。但是这些文件我们是不需要上传到Git仓库的。其实在所有的操作系统中,系统都会自动创建一下系统文件,如.Trashesehthumbs.dbThumbs.db等。

    2 问题的解决

    Git提供了忽略某些文件的功能,通过.gitignore文件配置,即可忽略特定的文件上传到Git仓库。可在当前目录配置在全局配置,接下来将分别介绍配置的方法。

    2.1 仅在当前项目设置

    1. 首先在根目录下创建.gitignore文件
    touch .gitignore
    
    1. .gitignore文件中添加需要忽略的文件名或规则,规则如下:
    • 忽略特定的文件:test.txt
    • 忽律目录:.idea/
    • 忽略每一类的文件:*.pyc
      如:
    # Compiled source #
    ###################
    *.com
    *.class
    *.dll
    *.exe
    *.o
    *.so
    
    # Packages #
    ############
    # it's better to unpack these files and commit the raw source
    # git has its own built in compression methods
    *.7z
    *.dmg
    *.gz
    *.iso
    *.jar
    *.rar
    *.tar
    *.zip
    
    # Logs and databases #
    ######################
    *.log
    *.sql
    *.sqlite
    
    # OS generated files #
    ######################
    .DS_Store
    .DS_Store?
    ._*
    .Spotlight-V100
    .Trashes
    ehthumbs.db
    Thumbs.db
    
    1. 运行如下命令,将设置添加到当前的仓库中
    git add .gitignore
    git commit -m '.DS_Store banished!'
    
    1. 推送到远程仓库(以master为例)
    git push origin master
    

    注意: 如果运行上述命令没有生效,解决方法参见本文的第三部分

    2.2 全局设置

    1. 创建如下文件并打开
    touch ~/.gitignore_global
    vi ~/.gitignore_global
    
    1. 在文件中添加需要忽律的文件名或规则
    # Compiled source #
    ###################
    *.com
    *.class
    *.dll
    *.exe
    *.o
    *.so
    
    # Packages #
    ############
    # it's better to unpack these files and commit the raw source
    # git has its own built in compression methods
    *.7z
    *.dmg
    *.gz
    *.iso
    *.jar
    *.rar
    *.tar
    *.zip
    
    # Logs and databases #
    ######################
    *.log
    *.sql
    *.sqlite
    
    # OS generated files #
    ######################
    .DS_Store
    .DS_Store?
    ._*
    .Spotlight-V100
    .Trashes
    ehthumbs.db
    Thumbs.db
    
    1. 全局设置git需要忽略的文件
    git config --global core.excludesfile ~/.gitignore_global
    
    1. 在当前项目中生效
    git add .
    git commit -m '忽略文件'
    
    1. 推送到远程仓库
    git push origin master
    

    3 没有生效的原因和解决方法

    gitignore 没有生效的原因是git缓存的问题,需要更新缓存之后重新提交

    首先,更新缓存,运行如下命令

    # git rm -r --cached .
    
    # git add .
    git commit -m 'update .gitignore'
    

    然后,推送到远程分支

    git push origin master # 也可以是其他分支
    

    参考文献:
    [1] https://stackoverflow.com/questions/107701/how-can-i-remove-ds-store-files-from-a-git-repository#new-answer

    相关文章

      网友评论

          本文标题:Git中忽略某些文件,如系统文件.Ds_store等

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