我的.gitignore中有settings.py但是当我执行git pull时它仍会更改它

问题描述 投票:0回答:3

我为我的本地项目和我的现场项目(Bitbucket repo)提供了不同的settings.py。所以我已经将settings.py添加到我的.gitignore所以当我对任一文件进行更改时,当我的git被拉或推时,它们不会被发送到另一个repo。

然而,我刚从我当地的仓库做了一个git pull - 它做了一个合并,并将settings.py文件更改为Bitbucket settings.py

到底是怎么回事?

编辑 - Gitignore文件:

/lib
/media
.env
/include
/reports
.DS_Store
*.pyc
celerybeat-schedule.db
__pycache__/
db.sqlite3
log.django
settings.py
static/
/static
django git bitbucket
3个回答
1
投票

如果您的仓库中已有settings.py文件,则将其添加到.gitignore将不会阻止文件被拉出。唯一的方法是将它从回购中完全删除。

但这是错误的做法。您不应该从版本控制中排除整个设置文件。开发和生产之间的几乎所有设置都保持不变;有很多技术可以维护那些不同的技术,从单独的local_settings文件到使用环境变量。


0
投票

git完全停止跟踪settings.py,包括之前的提交。

在将规则添加到git文件以忽略它之前,.gitignore不会忽略已被跟踪的文件。

在这种情况下,必须首先使用以下命令取消跟踪文件:git rm --cached <filename>

因此,如果您在初始提交后尝试忽略此文件,请运行:git rm --cached settings.py,您应该很高兴。

为了让git停止跟踪settings.py的未来变化,除了最初的提交。

请参阅this答案。


0
投票

我想你已经将settings.py文件推送到远程了。所以当你从遥控器拉。即使您已将此文件添加到.gitignore,您的本地文件也会更改。 git将继续跟踪任何已被跟踪的文件。

解决此问题的简单方法。第一: git rm -r --cached . git add .

然后: git commit -am "Remove ignored files"

有关更多信息,请参阅this答案。

© www.soinside.com 2019 - 2024. All rights reserved.