Git 中的.gitignore文件的作用及配置

文章目录

  • 前言
  • 一、.gitignore文件是什么?
  • 二、如何配置.gitignore文件?
  • 三、.gitignore文件在使用中的问题
  • 总结


前言

在使用Git的时候,有时候会在Git的工作区目录中产生一个.gitignore文件,该篇来简单介绍一下它的作用以及该如何进行配置。

一、.gitignore文件是什么?

有的时候在IDE中使用Git拉取了GitHub上的开源代码的时候总会看到工作目录中有一堆的文件和目录,其中就有一个.gitignore文件,对于初学者来说不影响使用就不会去着重理会它,但这可能就在日后的使用中留下了隐患。

例如,有些时候,你需要在Git的工作目录中加入某些需要的文件,例如一些新增的配置文件,等。但是很多配置文件中会有一些重要的私密信息,你不想将其进行提交。所以当你每次在使用git status查看状态时,总会报出Untracked files ...这行信息,让你总是要去查看一下是否有什么遗漏。这在使用Git中会带来很不好的体验。此时就需要用到.gitignore这个配置文件了。

Git考虑到这个问题,所以在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。 这也就是它的作用啦~。忽略一些特殊不需要或者不想add的文件。

二、如何配置.gitignore文件?

当然一般情况下不需要我们自己从头写编写.gitignore文件,在GitHub中有一个仓库已经为我们总结了各种情况下.gitignore文件的配置方式,我们只需要按需组合,并加以修改就可以使用了。所有配置文件可以直接在线浏览:github/gitignore

这里一般我们配置忽略文件的原则是:

  • 忽略操作系统自动生成的文件,比如缩略图等;

  • 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;

  • 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

    windows系统忽略文件示例:

    # Windows thumbnail cache files
    Thumbs.db
    Thumbs.db:encryptable
    ehthumbs.db
    ehthumbs_vista.db
    
    # Dump file
    *.stackdump
    
    # Folder config file
    [Dd]esktop.ini
    
    # Recycle Bin used on file shares
    $RECYCLE.BIN/
    
    # Windows Installer files
    *.cab
    *.msi
    *.msix
    *.msm
    *.msp
    
    # Windows shortcuts
    *.lnk
    

最后一步就是把.gitignore也提交到Git,就完成了!当然检验.gitignore的标准是git status命令是不是说working directory clean

注意⚠️:在Windows系统中,如果在资源管理器里新建一个.gitignore文件,它会非常弱智地提示你必须输入文件名,无法直接创建。此时你在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore了。

三、.gitignore文件在使用中的问题

  • 有时候你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了

    $ git add App.class
    The following paths are ignored by one of your .gitignore files:
    App.class
    Use -f if you really want to add them.
    

    你会发现它会提示你使用-f参数来执行添加的操作:

    $ git add -f App.class
    
  • 有可能这个.gitignore文件不是你编写的,但是它编写的不符合实际需求,你可以使用git check-ignore命令进行检查,看是哪一个规则有问题了:

    $ git check-ignore -v App.class
    .gitignore:3:*.class	App.class
    

    这个输出是Git在告诉我们,.gitignore的第3行规则忽略了该文件,此时对这条规则进行修改就好了。

  • 有的时候你要添加的文件和忽略规则是包含关系,就是你想要提交的某个文件属于忽略规则中的某一类,除了使用 -f参数 进行强行添加到版本库中外,还可以在文件中配置排除忽略某个文件,例如:
    .gitignore文件中配置了如下规则:

    # 忽略所有.开头的隐藏文件:
    .*
    # 忽略所有.class文件:
    *.class
    

    但是我们发现.*这个规则把.gitignore也排除了,并且App.class需要被添加到版本库,但是被*.class规则排除了。

    此时可以在.gitignore中添加两条排除规则:

    # 忽略所有.开头的隐藏文件:
    .*
    # 忽略所有.class文件:
    *.class
    
    # 排除忽略.gitignore和App.class:
    !.gitignore
    !App.class
    

    把指定文件排除在.gitignore规则外的写法就是!文件名,所以,只需把例外文件添加进去即可。

总结

  • 忽略某些文件时,需要编写.gitignore
  • .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!

你可能感兴趣的:(Git,git)