zoukankan      html  css  js  c++  java
  • 详解Github的.gitignore忽略文件+.gitignore不生效解决方案+生产配置大奉送

    详解Github的.gitignore忽略文件+.gitignore不生效解决方案+生产配置大奉送

    Git中有一个非常重要的一个文件-----.gitignore

    今天给大家免费送一个.gitignore忽略文件配置清单。

     

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

     

    ============华丽的分割线============

    当然如果已经push了怎么办?当然也有解决方法,如下:

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

       --cached 后面 有个点

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

    ?

    ============华丽的分割线============



    在版本管理的根目录下(与.Git文件夹同级)创建一个  .gitignore(gitignore是隐藏文件,所以前面有个点)

    创建命令:gitignore - Specifies intentionally untracked files to ignore

    首先要强调一点,这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”。这样没有扩展名的文件在Windows下不太好创建,这里给出win7的创建方法:创建一个文件,文件名为:“.gitignore.”,注意前后都有一个点。保存之后系统会自动重命名为“.gitignore”。一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。实际项目中,很多文件都是不需要版本管理的,比如Python的.pyc文件和一些包含密码的配置文件等等。


     

    应用实例(摘自互联网)

              项目中有clist.h clist.c  main.c三个文件,编译执行后,生成了三个文件  clist.o  main.o   main(执行文件)。这三个文件是不需要进行版本管理的,所以需要忽略这些文件,使用 git  stauts查看后,发现这三个文件也是处于 Untracked files状态。而实际上我们是想忽略他。

     

    使用gitignore文件来解决这个问题,步骤是:

     

    [plain] view plain copy
     
    1. S1:      touch  .gitignore     #创建gitignore隱藏文件  
    2. S2:      vim    .gitignore     #编辑文件,加入指定文件  
    3.          #下面是我的gitignore文件的内容  
    4.          #忽略gitignore文件  
    5.          .gitignore  
    6.          #忽略后缀名为.o和.a的文件  
    7.          *.[oa]  
    8.          #显示指定忽略名称为main的文件  
    9.          main  

    文件.gitignore的格式规范:
    A:#为注释   
    B:可以使用shell所使用的正则表达式来进行模式匹配   
    C:匹配模式最后跟"/"说明要忽略的是目录 
    D:使用!取反(例如目录中包含  test.a,并且gitignore文件中包含  *.[oa],如果在文件中加入 !test.a   表明忽略除test.a文件以外的后缀名为.a或者.o的文件)

     

    配置完.gitignore文件后,执行git status命令,会发现那三个文件不再是Untracked files了,也就完成了忽略指定文件的功能。

     

    生产配置大奉送 

    栗子
    # 此为注释 – 将被 Git 忽略
     
    *.a       # 忽略所有 .a 结尾的文件
    !lib.a    # 但 lib.a 除外
    /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/    # 忽略 build/ 目录下的所有文件
    doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt



    .gitignore最强配置清单 如下:

    /gradle/wrapper/gradle-wrapper.properties
    ##----------Android----------
    # build
    *.apk
    *.ap_
    *.dex
    *.class
    bin/
    gen/
    build/
    
    # gradle
    .gradle/
    gradle-app.setting
    !gradle-wrapper.jar
    build/
    
    local.properties
    
    ##----------idea----------
    *.iml
    .idea/
    *.ipr
    *.iws
    
    # Android Studio Navigation editor temp files
    .navigation/
    
    ##----------Other----------
    # osx
    *~
    .DS_Store
    gradle.properties
    

     

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010566681/article/details/53183146
  • 相关阅读:
    异常-ERROR yarn.ApplicationMaster: User class threw exception: java.sql.SQLException: Communications link failure
    异常-Data truncation: Truncated incorrect DOUBLE value: '-9370.3530-'
    算法中的时间复杂度分析
    MySQL开启binlog无法启动ct 10 21:27:31 postfix/pickup[4801]: warning: 6BD991A0039: message has been queue
    【异常】ERROR main:com.cloudera.enterprise.dbutil.SqlFileRunner: Exception while executing ddl scripts. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ROLES' already exists
    CDH5.16.1的agent启动报错:ERROR Error, CM server guid updated, expected d9bcadb4-f983-41b8-a667-66760f47bc91, received a67f5efa-8473-4f6a-94d6-231d1f432ef0
    MySQL无法启动:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    [Ubuntu] Ubuntu13.04, the desktop freezed after login
    [ubuntu] ubuntu13.04安装rabbitcvs管理svn
    [javascript] ajaxfileupload.js 跨域上传文件
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/8669520.html
Copyright © 2011-2022 走看看