配置文件等的 Git 最佳实践

标签 git github config

我对 git 还是个新手,想知道关于配置文件的最佳实践是什么。我的本地开发服务器需要与我的实际服务器不同的配置值,那么如何才能阻止它推送/pull 这些文件?

最佳答案

使用符号链接(symbolic link)。

举个例子,你有一个名为“config.ini”的配置文件。在您的 git 存储库的工作目录中,您将执行以下操作:

  1. 创建一个名为“config-sample.ini”的配置文件版本。这是您将在其上完成所有工作的文件。

  2. 在“config.ini”和“config-sample.ini”之间创建符号链接(symbolic link)。

    ln -s config-sample.ini config.ini
    

    这让您的所有代码都指向“config.ini”,即使您实际上在维护“config-sample.ini”。

  3. 更新您的 .gitignore 以防止存储“config.ini”。即添加“config.ini”行:

    echo "config.ini" >> .gitignore
    
  4. (可选,但强烈推荐)创建一个包含“config.ini export-ignore”行的 .gitattributes 文件。

    echo "config.ini export-ignore" >> .gitattributes
    
  5. 进行一些编码和部署....

  6. 将代码部署到生产环境后,将“config-sample.ini”文件复制到“config.ini”。您需要对生产设置进行必要的调整。您只需在第一次部署时以及任何时候更改配置文件的结构时执行此操作。

这样做的一些好处:

  • 配置文件的结构在 repo 中维护。

  • 可以为开发和生产之间相同的任何配置选项维护合理的默认值。

  • 只要您将新版本推向生产环境,您的“config-sample.ini”就会更新。这使得发现您需要在“config.ini”文件中进行的任何更改变得容易得多。

  • 您永远不会覆盖“config.ini”的生产版本。 (带有 .gitattributes 文件的可选步骤 4 增加了一个额外的保证,即使您不小心将它添加到存储库中,也永远不会导出您的“config.ini”文件。)

(这对我来说在 Mac 和 Linux 上非常有效。我猜想在 Windows 上可能有相应的解决方案,但其他人将不得不对此发表评论。)

关于配置文件等的 Git 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9342886/

相关文章:

xcode - 任何人都有一种方法来移动文件以保持 Xcode 项目和 git 同步?

git - 为什么 'git commit' 不保存我的更改?

git - TortoiseGit 麻烦 : git did not exit cleanly (exit code 128)

php - 为什么 Laravel 5 移除了 Cascading Configs

java - Spring通过枚举来选择bean配置属性

git config --global 返回 "syntax error near unexpected token ` )'"错误

git - 如何在 Git 中聚合 2 个分支

GIT pull 或克隆存储库仅获取 Master 分支

github - 在 GitHub wiki 中搜索关键字

javascript - AngularJS 将 $routeParam 存储在工厂服务的 var 中