我为我的本地项目和我的现场项目(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
如果您的仓库中已有settings.py文件,则将其添加到.gitignore将不会阻止文件被拉出。唯一的方法是将它从回购中完全删除。
但这是错误的做法。您不应该从版本控制中排除整个设置文件。开发和生产之间的几乎所有设置都保持不变;有很多技术可以维护那些不同的技术,从单独的local_settings文件到使用环境变量。
让git
完全停止跟踪settings.py
,包括之前的提交。
在将规则添加到git
文件以忽略它之前,.gitignore
不会忽略已被跟踪的文件。
在这种情况下,必须首先使用以下命令取消跟踪文件:git rm --cached <filename>
。
因此,如果您在初始提交后尝试忽略此文件,请运行:git rm --cached settings.py
,您应该很高兴。
为了让git
停止跟踪settings.py
的未来变化,除了最初的提交。
请参阅this答案。
我想你已经将settings.py文件推送到远程了。所以当你从遥控器拉。即使您已将此文件添加到.gitignore,您的本地文件也会更改。 git将继续跟踪任何已被跟踪的文件。
解决此问题的简单方法。第一:
git rm -r --cached .
git add .
然后:
git commit -am "Remove ignored files"
有关更多信息,请参阅this答案。