不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定

Posted

技术标签:

【中文标题】不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定【英文标题】:Does not ignore db.sqlite3 file,even i specified in .gitignore in django project 【发布时间】:2020-06-18 00:55:25 【问题描述】:

在我的 Django 项目中,我在 django 项目的根目录中也有 .gitignore 文件,但是当我触发 git statusgit add . 时,它会将所有 __pycache__ db.sqlite3 添加到存储库中。我需要从我的项目中删除这两件事。请帮忙。!

我分别在我的两个.gitignore 文件中尝试了*.sqlite3mom/*.sqlite3mom/db.sqlite3db.sqlite3 之类的所有内容。但是在任何目录中都不起作用。

这是我的主要 git 忽略文件 .gitignore

media
*.sqlite3
**/__pycache__/**
*.pyc

这是我的另一个 git 忽略文件 .gitignore

media
db.sqlite3
**/__pycache__/**
*.pyc

我也从在线资源中尝试了很多可能性,但没有任何效果

文件结构

MOM-PROJECT(local Repo)
|
├───MOM (main project)
|   ├───media
|   │   └───media
|   ├───MOM
|   │   ├───migrations
|   │   └───templatetags
|   ├───userprofile
|   │   └───migrations
|   │       └───__pycache__
|   ├───templates
|   │    ├───MOM
|   │    ├───userprofile
|   │    └───base.html
|   ├───manage.py
|   ├───requirements.txt
|   ├───db.sqlite3
|   └───.gitignore [another created after main]
|
├───README.md
├───.git
└───.gitignore [Main]

列出 git add 命令的添加文件

    modified:   .gitignore
    new file:   mom/.gitignore
    new file:   mom/db.sqlite3
    modified:   mom/meeting/admin.py
    modified:   mom/meeting/views.py
    modified:   mom/static/js/meetingtext.js
    ...

嗯,实际上我首先在 ma​​in 文件夹中创建了 .gitignore 文件,其中 .git 文件夹 (in project) 存在。我的媒体文件夹自动删除,效果很好。但是当我在主.gitignore 中添加mom/db.sqlite3*.sqlite3 时,它并没有忽略,因此我在我的项目文件夹中创建了 another .gitignore 文件,其中存在db.sqlite3。但这也不能忽略我的db.sqlite3 文件

请建议我需要做什么。请不要建议我使用 Smart-Git 或任何其他 GUI 选项。现在我正在学习阶段,所以我需要命令行上的所有东西

【问题讨论】:

对于列为new file 的那些,运行git rm --cached 将它们从索引中删除——你已经将它们添加到索引中(虽然还没有提交,幸运的是),所以现在把名字进入.gitignore 不会再次退出 【参考方案1】:

我有同样的问题,但发现我的问题是我在之前的提交中已经跟踪并提交了 db.sqlite3 文件,这使得当我后来将它添加到 .gitignore 时,git 无法忽略它。

我认为这不是您的情况,但也许它可以为您提供一些解决方案的提示。

在不删除我使用的本地文件的情况下取消跟踪文件:

git rm -r --cached db.sqlite3

在此之后,.gitignore 正在按预期工作。

【讨论】:

【参考方案2】:

删除 *s。

如果你特别想忽略 pycache 和 db.sqlite3 文件, 只需添加

__pycache__/
db.sqlite3

到您的 .gitignore 文件。或者搜索 django .gitignore 文件并从那里采样。

如果您想深入了解 gitignore 文件,请查看 https://git-scm.com/docs/gitignore

【讨论】:

感谢您的回答,直到它添加了我在我的问题中给出的 db.sqlite3 才能工作,请参阅..

以上是关于不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使禁用缓存,服务器也会忽略代码文件中的更改?

自定义帖子类型不接受页面变量

Django入门问题解决01

python数据库之sqlite3

python数据库之sqlite3

sqlite 删除数据后文件size并不会减小,解决办法: