gpt4 book ai didi

Git Config 只为一个分支排除文件

转载 作者:太空狗 更新时间:2023-10-29 14:15:59 24 4
gpt4 key购买 nike

我想在我的公共(public)分支中排除一个名为 config/dbconfig.js 的文件,我用它来推送到 github,但仍然能够从 master 推送到我的 noester.com git repo 以推送到生产。我将配置文件更改为:

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
excludesfile = +info/exclude
[remote "nodester"]
url = *** My Git Repo ***
fetch = +refs/heads/*:refs/remotes/nodester/*
[branch "public"]
excludesfile = +info/exclude_public

我确保删除了 .gitignore 文件,我正在使用 .git/info/exclude 文件进行一般排除,并希望使用 .git/info/exclude_public 来排除那个文件,所以当我 merge 时公开该文件不会 merge 也不会推送到 github。

如果我执行以下操作,即使在公共(public)分支中,它仍会将文件添加到 git。所以我在想以太我的语法错误或者不可能。

$ git checkout public
$ git add .
$ git status
# On branch public
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: config/dbconfig.json
#

如果这不可能,是否有更好的方法来处理数据库配置,您不想在不运行两个 git 存储库并在它们之间手动 merge 的情况下退出一个开放的 Github 项目?

最佳答案

对于配置文件,最好处理内容过滤器驱动程序,而不是试图忽略某些分支的文件。

content filters

你会:

  • 存储配置文件模板
  • 存储公共(public)值(value)
  • 让内容过滤器“smudge”脚本从模板和公共(public)值中构建目标配置文件,
    ...除非该脚本检测到它在部署环境中,在这种情况下,它将使用来自该服务器上另一个来源的值(而不是存储在 repo 中的公共(public)值)

参见插图:

关于Git Config 只为一个分支排除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7630638/

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