【发布时间】:2021-07-21 14:51:58
【问题描述】:
在我的 Django 项目中,我将设置组织为具有如下文件结构的模块:
/settings/
__init__.py
base.py
prod.py
dev.py
dev_user_a.py
dev_user_b.py
prod_user_a.py
prod_user_b.py etc.
它们作为一个层次结构工作,即 def_user_a.py 导入 dev.py、dev.py 导入 base.py。
__init__.py 导入“叶子”之一,即dev_user_a.py,这是每个用户可以选择他的设置的方式。这工作正常,除了我似乎无法从 git 中排除 /settings/__init__.py,这意味着对该文件的本地更改可能会意外地广播给其他用户。
两个问题:
- 有没有更好的方法来实现这一点?如何实现?
- 为什么将
__init__.py添加到.gitignore(或.git/info/exclude)不起作用?
【问题讨论】:
-
已经提交了吗?
-
是的,由另一个用户,然后我拉了它,不知道发生了这种情况,并在他的设置上工作了一段时间。现在我已经把它改回了我的价值观,我还没有上演它,但它一直在我未提交的更改中徘徊。当我尝试 git check-ignore trees/trees/settings/* 时,它正确列出了 settings/dev_xxx.py,但没有列出 init.py
-
.gitignore 包含(除其他外)这两行 tree/trees/settings/__init__.py trees/trees/settings/dev_*.py
-
如果它被跟踪,那么它不会被忽略。
-
啊,我必须使用 git rm --cached trees/trees/__init__.py,谢谢。
标签: git django-settings