Git配置新建、修改.gitignore后不生效的解决方案

别执行git rm -r --cached .,这会把所有的缓存都清掉!laravel项目根目录下执行完后,所有文件都需要add一次才行:

不起作用原因
如果本地仓库文件已被跟踪,那么即使在 .gitignore 中设置了忽略,也不起作用
意思就是,如果想把已经在git仓库中的文件忽略掉,直接在.gitignore中添加是不可以的,需要运行git rm -r --cached 路径/文件名来先删除仓库的记录,想让哪个生效,删哪个缓存就好,之后在.gitignore配置即可生效

其它
.gitignore作用
忽略掉一些不需要上传到git的文件,如:开发配置文件、插件文件等

规则
(1)空行不匹配任何文件;

(2)git 跟踪文件,而不是目录;

(3)在 .gitignore 文件中,每行表示一种模式;

(4)如果本地仓库文件已被跟踪,那么即使在 .gitignore 中设置了忽略,也不起作用。

(5).gitignore 文件也会被上传的到远程仓库,所以,同一个仓库的人可以使用同一个.gitignore 文件。

文件详细配置请参考:Git 开发必备 .gitignore 详解!

以下文章内容来自:.gitignore不生效问题解决方法
额外说明:git库所在的文件夹中的文件大致有4种状态
Untracked:
未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

Unmodify:
文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改,
而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

Modified:
文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态,
使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改

Staged:
暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态.
执行git reset HEAD filename取消暂存, 文件状态为Modified

Git 状态 untracked 和 not staged的区别
untrack 表示是新文件,没有被add过,是为跟踪的意思。
not staged 表示add过的文件,即跟踪文件,再次修改没有add,就是没有暂存的意思
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李飞要当大神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值