git配置.gitignore失效如何处理

.gitignore只能忽略没有被跟踪的文件(就是没有被纳入版本管理的文件),如果已经被纳入版本管理是无法忽略的。

所谓纳入版本管理,就是在本地有个缓存区(cached),所有在缓存区的文件都被版本管理了,每次你修改文件后,git会对比缓存区和当前的文件差异,从而决定哪些需要提交更新。

为了重新让修改的.gitignore生效,首先在本地清除缓存,然后重新将文件纳入版本管理,最后提交新.gitignore到远端。

在项目根目录下,指令如下:

git rm -r --cached .    //清除缓存区,注意最后有个"."

git add .                    //重新纳入版本管理,注意最后有个"."

git commit -m 'update .gitignore'    //提交新的忽略文件。

如果你用的是sourceTree,最后一步更新忽略文件可以在界面操作

针对一个某个文件:

git rm --cached temp.php  //表示将temp.php移除版本管理。

git add temp.php   //表示将temp.php纳入版本管理

可以按照以下步骤来:

第1步: 先将要忽略的文件备份。

第2步:已跟踪文件,先退出版本管理,退出同时等于删除文件,再提交到git上,即删除远程的文件,让其变成未跟踪文件

第3步:未跟踪文件,直接在.gitignore文件打上文件名字,如果要忽略整个文件夹,要在文字后面加上一个/ 。

第4步:将之前备份文件拷贝回来,以后都不会提交了。

 

.gitignore文件忽略规则

# 忽略*.o和*.a文件 

*.[oa]

# 忽略*.b和*.B文件,my.b除外  -》

*.[bB]

!my.b

# 忽略dbg文件和dbg目录

dbg

# 只忽略dbg目录,不忽略dbg文件

dbg/

# 只忽略dbg文件,不忽略dbg目录

dbg

!dbg/

# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内

/dbg

# 以'#'开始的行,被视为注释.

 ?:代表任意的一个字符
 *:代表任意数目的字符
  {!ab}:必须不是此类型
  {ab,bb,cx}:代表ab,bb,cx中任一类型即可
   [abc]:代表a,b,c中任一字符即可
   [ ^abc]:代表必须不是a,b,c中任一字符

 

Git忽略提交规则 - .gitignore配置运维总结

https://www.cnblogs.com/kevingrace/p/5690241.html

posted @ 2019-07-04 18:26  糊糊饭团  阅读(2242)  评论(0编辑  收藏  举报