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

Androidstudio gitignore 不生效 gitignore不起作用_上传

不起作用原因

如果本地仓库文件已被跟踪,那么即使在 .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种状态

  1. Untracked:

未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

  1. Unmodify:

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

  1. Modified:

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

  1. Staged:

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

Git 状态 untracked 和 not staged的区别

  1. untrack 表示是新文件,没有被add过,是为跟踪的意思。
  2. not staged 表示add过的文件,即跟踪文件,再次修改没有add,就是没有暂存的意思