Git忽略规则(.gitignore配置)不生效原因和解决方案

Git忽略规则(.gitignore配置)不生效原因和解决方案

Git忽略规则(.gitignore配置)不生效原因和解决方案

重点

.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。

原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,

这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。

需要特别注意的是:

1).gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

2)想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cached)文件,

对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略。

在使用.gitignore文件后如何删除远程仓库中以前上传的此类文件而保留本地文件

在使用git和github的时候,之前没有写.gitignore文件,就上传了一些没有必要的文件,在添加了.gitignore文件后,就想删除远程仓库中的文件却想保存本地的文件。这时候不可以直接使用"git rm directory" ,这样会删除本地仓库的文件。可以使用"git rm -r --cached directory "来删除缓冲,然后进行"commit "和"push ",这样会发现远程仓库中的不必要文件就被删除了,以后可以直接使用"git add -A "来添加修改的内容,上传的文件就会受到.gitignore文件的内容约束。


删除远程仓库已提交的文件,重新推送,一般用于 .gitignore文件 修改配置

bash 复制代码
git rm -r --cached .

# -f 强制删除        
git rm -r --cached . -f        (. 删全部 文件夹或者文件名直接指定删单个)
git add .
git commit -m 'update .gitignore'
git push origin 分支名

git add .的时候他会适配 .gitignore文件内容

方式1:

bash 复制代码
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
git push origin master

方式2:

bash 复制代码
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
git push -u origin master

拉取

初始化项目

bash 复制代码
git init

配置远程项目地址

bash 复制代码
 git remote add origin https://gitee.com/cplvfx/jjyv1.0.git 

拉取项目
git pull origin 分支名

bash 复制代码
git pull origin master

延伸阅读

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

https://blog.csdn.net/Ben_boba/article/details/124922352

2、Git操作:

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

3、git 排除文件或文件夹,Git忽略文件或文件夹

https://cplvfx.blog.csdn.net/article/details/139093207

4、 git:git rm --cached和git rm -f和git restore --staged的区别(附带详细步骤测试)和git diff比较本地分支和远程分支的区别(细分到文件/文件)

https://blog.csdn.net/zhiaidaidai/article/details/137147360

相关推荐
Codeking__8 小时前
Redis——基本通用命令
redis·git·github
Dontla12 小时前
Git error: fatal: detected dubious ownership in repository at xxx
git
论迹14 小时前
【Git】-- 多人协作
git·ubuntu
roamingcode15 小时前
从混沌到秩序:Git Diff 结构化报告的 Claude Code Skill 实践
人工智能·git·agent·skill·claude code·领域知识包·ai经验复用
ss27316 小时前
idea中git更新项目:将传入更改合并到当前分支,在传入更改上变基当前分支
java·git·intellij-idea
hopsky16 小时前
好用!Git 同时开发多个分支
git
secondyoung18 小时前
Git使用:rebase用法
c语言·经验分享·git·vscode
萧曵 丶19 小时前
CI/CD 流程
git·ci/cd
import_random20 小时前
[git版本控制]git push(详解)
git
bing_feilong21 小时前
gitee pull 总是需要用户名和密码,该如何设置?
git·gitee