gitignore失效时的处理方案

在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:

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

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

?
1
2
3
git  rm  -r --cached .
git add .
git commit -m  'update .gitignore'

.gitignore文件Git版本控制系统中用来忽略特定文件或目录的一种配置文件。它帮助开发者管理不需要提交到仓库的本地文件,比如编译临文件、日志文件、数据库备份等。以下是使用和创建.gitignore文件的一些基本方法: 1. **创建 .gitignore 文件**:通常在项目根目录下创建一个名为`.gitignore`(注意首字符是点)的文本文件。如果没有,可以在项目中手动创建,或者使用命令行工具自动生成。 2. **添加忽略规则**:在文件中,每行写一条规则,格式通常是文件名模式。模式可以使用通配符,如`*`(匹配任意字符)、`?`(匹配单个字符)、`[abc]`(匹配单个字符集)等。例如,`*.log`会忽略所有.log结尾的文件。 3. **项目特定规则**:根据项目的特性和需求,可以针对不同类型的文件或目录编写规则。比如,`node_modules/`可以忽略Node.js的依赖包文件,`.DS_Store`可以忽略Mac OS下的隐藏文件。 4. **全局 .gitignore**:在用户家目录下的`$HOME/.gitconfig`(或者在Windows用户目录下)可以定义全局的.gitignore规则,这样在任何项目中都生效。 5. **忽略特定分支**:如果只想在某个分支上忽略某些文件,可以在该分支的`.git/info/exclude`中添加规则。 6. **检查和更新**:使用`git check-ignore`命令检查哪些文件会被忽略,`git update-index --assume-unchanged`可以暂忽略特定文件以便快速提交。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值