gpt4 book ai didi

python - 我可以 git 忽略整个分支来创建与实时服务器交互的本地分支,并将调试设置为 True 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:02 25 4
gpt4 key购买 nike

我即将开始部署,但我的实时服务器崩溃了,而且我无法将调试设置为 True。

我已经知道如何设置,但我想我需要一些帮助。

我有一个本地分支 master 和一个带有 Django Debug=True 的本地数据库。
我将 master 推送到我的服务器,其中有一个实时数据库和一个 .env 文件,其中 Debug 设置为 False.

我现在已经设置了一个新的本地分支 - debug - 它具有 Debug=True,并且使用 SSH 隧道,我可以连接到我的实时数据库。< br/>我想要的只是针对实时数据库运行我的代码,并将 Debug 设置为 True。因此,当服务器上出现问题时,只要 debugmaster 除了 .env 之外有意义地相同,我应该能够调试任何错误,而不会在面向互联网的实时实例上发生 Debug=TRUE

我希望我的本地 debug 分支在各个方面都成为 master 的精确副本,但不是连接到我的本地数据库,而是通过 SSH 隧道连接到现场,并使用 Debug = True

问题

我有一个名为 .env.gitignore 文件,并且正在运行 python de Couple
我的 .env 文件在该 .gitignore 文件中引用。
有一个用于实时服务器的 .env,还有一个用于本地 master 分支。

我现在需要第三个用于 debug 分支 - 但它不受 Git 跟踪,因此当我切换分支时,它仍然指向我的单个 .env 文件.
如果我跟踪它,它最终会出现在存储库中,从而破坏了解耦的目的。

到目前为止,我已将环境变量(数据库等)硬编码到我的 debug 分支的 settings.py 文件中。

但是我现在该如何前进?
除了 settings.py 之外,如何在所有方面都与 master 一样进行 debug 操作?我的 .gitignore 不是特定于分支的?
另外,如何自动保持 debugmaster 同步?
理想情况下,我将 debug 同步到 master (除了 settings.py),然后整个分支永远不会提交到存储库?

有更好的解决方案吗?

最佳答案

Is there a better solution to all of this?

是的,它涉及保留(对于给定文件,此处 env-dev.txt )基于分支的不同内容,这意味着:

  • 仅对模板文件进行版本控制 env.tpl
  • 以分支命名的版本值文件:env.dev , env.master :由于它们不同,所以 merge 或切换分支时不存在 merge 问题。

为此,您可以在子模块存储库中注册(在 .gitattributes declaration 中) content filter driver

smudge(图片来自“Customizing Git - Git Attributes ”,来自“Pro Git book ”)

smudge脚本,关联到模板文件 ( env.tpl ),将生成(在 git checkout 上自动生成)实际的 env通过查看右侧的值来创建文件 env.<branch>值文件。生成的实际env文件仍然被忽略(由 .gitignore ),就像您当前所做的那样。

请参阅“git smudge/clean filter between branches ”中的完整示例。

您的smudge脚本可以通过以下方式确定 checkout 分支的名称:

branch=$(git rev-parse --symbolic --abbrev-ref HEAD)

同样的想法也适用于 settings.py如果您需要特定于分支的内容。`

关于python - 我可以 git 忽略整个分支来创建与实时服务器交互的本地分支,并将调试设置为 True 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56438500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com