我有一个 django 项目,我正在使用 git。
对于每个分支,我需要有不同的 settings.py 文件。
我已经测试了使用 merge=ours 将 settings.py 添加到 .gitattributes,但它不起作用,因为如果它没有任何冲突,Git 将正常合并。
此外,将 settings.py 添加到 .gitignore 不是一个选项,因为如果我更改了 settings.py 中的某些内容,我希望它被推送到同一个分支。
有没有办法在合并时忽略文件但仍然推送它?
更新:
我尝试了 VonC 的解决方案,并创建了两个设置:settings_production.py 和 settings_development.py。
所以,我 pip 安装了 gitpython 并在我的 settings.py 中使用它,如下所示:
from git import Repo
import os
r = Repo(os.path.realpath(os.path.dirname(__file__)))
if r.active_branch.__str__( == 'master':
from settings_production.py import *
else:
from settings_development.py import *
它工作得很好。