• .gitignore详解(附上eclipse的java项目的 .gitignore文件)


    今天讲讲Git中非常重要的一个文件――.gitignore。

    首先要强调一点,这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”。这样没有扩展名的文件在Windows下不太好创建,

    这里给出win7的创建方法:

    创建一个文件,文件名为:“.gitignore.”,注意前后都有一个点。保存之后系统会自动重命名为“.gitignore”

    一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。

    实际项目中,很多文件都是不需要版本管理的,比如Python的.pyc文件和一些包含密码的配置文件等等。

    这个文件的内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。

    下面我们看看常用的规则:

    /mtk/ 过滤整个文件夹

    *.zip 过滤所有.zip文件

    /mtk/do.c 过滤某个具体文件

    *.sample    # 忽略所有 .sample 结尾的文件
    !lib.sample    # 但 lib.sample 除外
    /TODO    # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/    # 忽略 build/ 目录下的所有文件
    doc/*.txt   # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

    很简单吧,被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传。

    需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中:

    !*.zip

    !/mtk/one.txt

    唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。

    为什么要有两种规则呢?想象一个场景:我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理。那么我们就需要使用:

    /mtk/

    !/mtk/one.txt

    假设我们只有过滤规则没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!

    最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。

    那好,如何正确使用.gitignore呢?这也是一门大学问。是不是项目做到一半,然后再添加.gitignore呢?不是的,最好的是你项目刚创建,项目还没有进行git版本控制的时候,首先在项目目录下加入.gitignore文件,即首先对.gitignore进行版本控制,然后在对项目进行版本控制。但是如果你是后来才加入.gitignore呢?就可能会出现如下问题:


    或者.DS_Store等文件不断的提醒我又被修改了。。。只是因为这些文件先于.gitignore进行版本控制了。此时你可以使用如下命令来让.gitignore忽视它:

    git rm --cached -r 文件名

    那么下次git就会忽视这些文件了。

    简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。

    所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。


    转载链接:  http://sentsin.com/web/666.html

    附上eclipse的java项目的 .gitignore文件

    /.settings/
    /target/
     
    # built application files
    *.apk
    *.ap_
     
    # files for the dex VM
    *.dex
     
    # Java class files
    *.class
    *.jar
     
    # generated files
    bin/
    gen/
     
    # Eclipse project files
    .classpath
    .project
    .DS_Store

    其他版本

    java git .gitignore常用规则

    # Created by .ignore support plugin (hsz.mobi)
    .gitignore
    
    # Operating System Files 
    
    *.DS_Store 
    Thumbs.db 
    *.sw? 
    .#* 
    *# 
    *~ 
    *.sublime-* 
    
    # Build Artifacts 
    
    .gradle/
    build/
    target/
    bin/
    dependency-reduced-pom.xml 
    
    # Eclipse Project Files 
    
    .classpath
    .project
    .settings/ 
    
    # IntelliJ IDEA Files 
    
    *.iml
    *.ipr 
    *.iws 
    *.idea 

     

    .gitignore规则不生效的解决办法

    把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:

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

    详见:https://shiyousan.com/post/636470505667009340

  • 相关阅读:
    利用nginx实现负载均衡和动静分离
    Nginx动静分离实现
    php中session 入库的实现
    php文字水印和php图片水印实现代码(二种加水印方法)
    采集图片水印添加
    [安全]PHP能引起安全的函数
    [安全]服务器安全之 PHP权限目录
    Centos下安装git的web服务器
    Centos下抓包
    UVA 10795
  • 原文地址:https://www.cnblogs.com/lukelook/p/11312205.html
Copyright © 2020-2023  润新知