首页 > 技术文章 > git忽略想要提交的文件

patriot 2019-04-09 09:22 原文

再使用webstrom的时候总会出现.idea文件,每次提交git的时候都会提交上去,所以找了下解决方法:

在项目中有些配置文件不需要提交,但是有同学在后面开发中发现在.igonore文件中无论如何都无法忽略某些文件的提交。原因在这里:

下面是我试的几种方法

1、方法

 已经维护起来的文件,即使加上了gitignore,也无济于事。----

那么如何解决呢?方式如下

  git update-index --assume-unchanged   要忽略的文件夹/文件夹下文件名

比如我要忽略项目下.idea文件夹下所有xml文件,idea下都是xml文件(我用的webstorm):

  git update-index --assume-unchanged   .idea/*.xml

如果要重新恢复提交,使用如下命令:

  git update-index --assume-unchanged   .idea/*.xml

这样每次提交就不会提交idea下的文件了。

2、设置webstrom  

   第一步:找到setting =》Editor =》File Types

   第二步:编辑,在后面添加 *.iml;*.idea;*.gitignore;*.sh;*.classpath;*.project;*.settings;target;logs;

 

    或者添加*.hprof;*.idea;*.iml;*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;__pycache__;_svn;vssver.scc;vssver2.scc; 

 

    总之需要忽略什么文件就 *.文件后缀名; 注意两个文件之间用 ; 分号分隔

3、创建 .gitignore

  首先找到你的项目目录

  创建 .gitignore   文件

  然后把不想提交的文件的文件名输入进去    

  特殊操作:

    # 此为注释 – 将被 Git 忽略

    *.a # 忽略所有 .a 结尾的文件

    !lib.a # 但 lib.a 除外

    /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO    

    build/ # 忽略 build/ 目录下的所有文件

    doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

/vendor
/node_modules
/public/storage
Homestead.yaml
Homestead.json
.env
.idea

  有时候会遇到创建了.gitignore   文件,发现忽略的文件依然存在:

  原因是:再git库中已经存在了这个文件,之前提交过该文件,而.gitinore只对还没提交过的文件有效;

  解决办法:需要删除该文件,并更新,然后查看文件状态(git status),文件不在显示,再提提交就没有.idea文件了

 

推荐阅读