协作时如何管理配置文件?

2024-01-08

我正在编写一个简短的脚本,在页面顶部包含一些简单的变量。我想和一位朋友一起处理它们,但我们不确定如何管理每次为我们中的一个人拉取后需要更改的变量,从而向 git status 添加不必要的垃圾。我想过为我们每个人创建不同的命名分支,然后主服务器将只设置示例用户名,但必须进行所有额外的合并工作似乎很愚蠢。我们可以将变量作为选项传递给脚本,但这不是我们想要的,也不是将其分离到另一个单独的配置文件中。如果有像 .gitignore 这样的东西就好了,但只忽略文件中的几行。

如何优雅地管理这个问题?通常如何处理这个问题?


恐怕您不能轻易忽略对文件特定行的更改,因此您可能不得不使用单独的配置文件。下面我列出了两种典型的处理方法,以及一种稍微奇特的方法:

在 git 中有一个示例配置文件

在这里,您将保存一个文件config.sample以 git 为例,但应用程序实际上会使用文件中的值config这是在.gitignore。然后应用程序将产生错误,除非config存在。当您向个人添加新的配置变量时,您必须记住更改示例文件中的值config文件。在这种情况下,让您的应用程序检查所有必需的配置变量是否已实际设置也是一个好主意,以防有人忘记更新他们的配置变量。config更改示例后的文件。

在 git 中有一个默认值文件

你保留一个文件config.defaults在 git 中,它具有尽可能合理的默认配置值。您的应用程序首先从以下来源获取配置config.defaults然后从config(这是在.gitignore) 可能会覆盖任何默认值。使用这种方法,通常不会导致以下错误config不存在,因此该应用程序可以为那些懒得创建的人开箱即用config.

使用带有 --assume-unchanged 的​​单个配置文件

第三种可能性,我个人在这种情况下不推荐,是有一个在 git 中提交的配置文件,但要使用git update-index --assume-unchanged <FILE>,告诉 git 忽略对其的更改。 (这在这篇有用的博客文章 http://www.gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html。)这意味着您对配置文件的本地更改不会被提交git commit -a或出现在git status.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

协作时如何管理配置文件? 的相关文章

  • git 提交错误:检测到大文件

    您好 我正在为 ios 8 1 开发一个应用程序 xcode 我已经使用 googleMaps 框架来实现自动完成功能 当我尝试在 Git 中推送我的项目时 我收到大文件检测错误 后来尝试使用 git lfs 并跟踪 git 检测到的文件
  • Git 提交失败:“请使用 -m 或 -F 选项提供消息。”

    当我键入 git commit 命令来提交文件时 我收到以下错误消息 Microsoft Visual Studio 微软 找不到命令 错误 核心编辑器 Microsoft Visual Studio 存在问题 请使用 m 或 F 选项提供
  • 自定义 SSH 端口上的 Git

    我的 VPS 提供商建议我将 SSH 端口保留为他们默认分配的自定义端口号 不是 22 问题是 虽然我知道我可以在创建远程配置时提供端口号 但在进行 Git 克隆时似乎无法提供相同的操作 我在用gitolite https wiki arc
  • Android 存储库初始化失败

    我想我非常仔细地遵循该网站的说明 http source android com source downloading html http source android com source downloading html 但是当我尝试这
  • 如何让 Aptana Studio 记住 git ssh 密码

    我找不到任何有关如何获得 Aptana Studio 的内置 git 支持来记住执行推 拉操作的 ssh 密码的指南 信息 有人有什么想法吗 Aptana Studio 实际上是内置的 GIT 程序 它将在 Windows 上的 C Use
  • `git push` -- 没有输出,什么也没有发生

    touch test git add test git commit m test git push u origin master 这奏效了 该文件已上传到存储库 rm test cp R website website git rm t
  • Windows 等效的系统配置目录

    我正在 Ruby 中开发一个 CLI 应用程序 我希望允许通过标准配置文件级联在 Unix 中进行配置 etc appnamerc appnamerc 然而 该应用程序也应该在 Windows 环境中运行 我不确定将像这样的文件放在哪里 e
  • 具有单个子模块的多个存储库

    我已经找了一段时间但没有找到答案 也许我不知道该看什么 我们有一个主库 它本身就是一个存储库 我们称之为 Lib 它包含我们的大部分模块和子模块 我们还假设它的大小为 2GB 现在我们有很多项目 例如 ProjA ProjB ProjC 每
  • GIT:提交时“致命:无法写入 new_index 文件”

    当我尝试将更改提交到本地存储库时 我收到以下消息 致命 无法写入 new index 文件 As this 线程说明 http luhman org blog 2010 04 05 git fatal unable write newind
  • 如何创建名称中带有正斜杠的标签

    当我已经有了类似的标签时 有什么方法可以创建名称中带有正斜杠的 git 标签吗 假设我有 1 16 0 标签 并且我想创建 1 16 0 1 0 0 标签 git tag 1 16 0 1 0 0 error refs tags 1 16
  • 在我的例子中,GIT 添加恢复(保留更改)

    在我对文件进行更改之后 我用git add FILE NAME 然后 我想将其恢复为未添加但与此同时保留更改 这个怎么做 git reset FILE NAME会做的 See the git reset manual https git s
  • 有没有办法导入/导出容器绑定脚本

    我有一个插件 它使用 appscripts gs 以及 html js 和 css 文件 目前我们所做的是我们有一个参考 Google 文档 其中有一个脚本项目包含所有这些源代码 但是除了手动复制和粘贴之外 没有办法在 GIT 中保留源代码
  • Gitolite git 克隆错误

    我正在尝试在我的服务器 Macos 服务器 上设置 gitolite 我按照此处找到的安装文档中的说明进行操作 http sitaramc github com gitolite doc 1 INSTALL html http sitara
  • Git checkout 不会丢弃我的更改

    我在 Windows XP 上使用 git 1 7 1 和 cygwin 这个问题可以通过例子得到最好的说明 git status On branch master Changed but not updated use git add
  • 如何更改 GitHub 上的文件模式?

    git add test file git commit m first commit create mode 100644 test file git push git update index add chmod x test file
  • 如何在GIT中构建标签树?

    作为 GIT 的频繁用户 我喜欢git log graph尽我所爱git tag 我负责一个大型 GIT 存储库 其中有太多分支和标签 而且我的处理速度太慢西西弗斯式的 https en wikipedia org wiki Sisyphu
  • GitLab:无法将代码推送到服务器?

    我已经在 Ubuntu 服务器上安装了 GitLab 一切似乎都工作正常 除了我无法向服务器推送 拉取 克隆 当我按下时 我收到一般错误消息 fatal Could not read from remote repository Pleas
  • BitBucket 应用程序密码:git 命令行访问有哪些权限?

    我了解如何为 BitBucket 创建应用程序密码 如中所述Atlassian 的应用程序密码信息 https support atlassian com bitbucket cloud docs app passwords and 这个答
  • 如何在 EGit 中创建正确的新本地和远程分支组合?

    我想在 Egit 中执行以下操作 git checkout b newbranch git push u origin newbranch 这给了我一个新的本地分支 将其推送到上游服务器并创建正确的跟踪参考 我如何在 Egit 中做同样的事
  • 如何从 Git 存储库中删除选定的提交日志条目,同时保留其更改?

    我想从线性提交树中删除选定的提交日志条目 以便这些条目不会显示在提交日志中 我的提交树看起来像 R A B C D E HEAD 我想删除 B 和 C 条目 以便它们不会显示在提交日志中 但应保留从 A 到 D 的更改 也许通过引入单个提交

随机推荐

  • 头文件中的静态 const 变量声明

    如果我在头文件中声明 static const 变量 如下所示 static const int my variable 1 然后将此标头包含在多个标头中 c文件 编译器将为每个文件创建新实例 或者足够 聪明 地看到它是const并且只会为
  • 从 PowerShell 使用 System.IO 访问 MTP 存储

    我正在尝试访问 MTP 设备存储以自动执行文件复制 备份等 如果 Windows 资源管理器能够打开并浏览 Android 设备内部存储和连接的 SD 卡 我如何使用 PowerShell 访问这些存储 我发现了很多提示 例如 获取设备 I
  • Java泛型中如何获取类型变量的类

    我见过类似的问题 但没有多大帮助 例如我有这个通用类 public class ContainerTest
  • 使用区域在 UML 活动图中循环

    我正在 UML 活动图中对循环进行建模 它适用于简单的条件节点 图 1 但我正在寻找一种更具表现力的方法来强调循环语义 所以我来到了所示的 区域 或 可中断区域 here http www pst ifi lmu de stoerrle V
  • 导入错误:DLL 加载在 Jupyter 笔记本中失败,但在 .py 文件中工作

    我安装了突破检测 https github com roland hochmuth BreakoutDetectionAnaconda 环境中的模块 当我尝试使用导入模块时import breakout detection在 jupyter
  • 如何在 MATLAB 中删除向量中一组索引处的元素?

    我有一个包含 100 个元素的向量 我有另一个向量 其中包含我想要从此向量中删除的元素的索引位置 我该怎么做呢 vector indecies example gt gt a 1 10 gt gt a 3 4 7 a 1 2 5 6 8 9
  • 为什么贪心算法找不到二分图的最大独立集?

    我试图使用贪心法解决二分图上的最大独立集问题 所以发现这篇文章正是我想做的 但我只关注二分图 答案中的反例不是二部图 是否有任何二分图无法使用 Greedy G S While G is not empty Let v be a node
  • 将 Google Analytics 与 Require.js 结合使用时出现问题

    我正在使用 require js http requirejs org http requirejs org 对于我网站上的许多功能 到目前为止它似乎运行良好 不过 我在尝试包含 Google Analytics 代码时遇到了问题 该代码似
  • php 的分支预测

    刚刚读了一篇很棒的文章分支预测 https stackoverflow com questions 11227809 why is processing a sorted array faster than an unsorted arra
  • 为什么Maven打出来的包没有附带依赖?

    我已经按照最简单的 Maven 示例 https maven apache org guides getting started maven in five minutes html并做出以下内容pom xml file
  • C#:'is' 关键字并检查 Not

    这是一个愚蠢的问题 但您可以使用此代码来检查某些东西是否是特定类型 if child is IContainer 有没有更优雅的方法来检查 NOT 实例 if child is IContainer A little ugly silly
  • 如何使用 EF Core 3.1 将 IEnumerable 的属性存储在 Cosmos 表中

    我的项目使用 EF Core 3 1 并以 Azure Cosmos 作为数据库 我有一个这样的实体 public class MyEntity public IEnumerable
  • 使用 Flask-admin 将文件附加到模型

    我正在使用 Flask Admin 为网站提供管理界面 如何处理文件上传到 sqlalchemy 模型 例如 class Product db Model tablename products id db Column db Integer
  • 如何从 Postgres 的预订中查找第一个免费开始时间

    人们的工作时间为上午 10 00 至晚上 21 00 周日和公共假期除外 每隔 15 分钟为他们预留一个工作岗位 工作时间为15分钟至4小时 整个工作必须适合一天 如何查找从当前日期和时间开始在 Postgres 9 3 中未在给定持续时间
  • 使用 npm 运行 bash 脚本

    我想尝试使用 npm 运行 Web 应用程序的各种构建任务 我知道我可以通过添加一个来做到这一点scripts领域到我的package json像这样 scripts build some build command 当您有更复杂的命令和一
  • 创建一个可以按任意顺序包含 int 和 string 的类型

    我正在关注这个哈斯克尔简介 http www cs auckland ac nz references haskell haskell intro html goodies html 而这个特定的地方 用户定义类型 2 2 我发现特别晦涩难
  • 已删除的实体传递给持久异常

    我有这样的实体 文档 恩 到 1 文件类型 1 到 n 财产种类 1 到 n 文件属性 我只是尝试删除如下文档 实体管理器 删除 文档 但发生错误 16 45 51 499 错误 Seam Resource Servlet servlet
  • Eclipse(带 adt)不会看到/识别正在运行的 avd

    我已经尝试这个一周左右了 我已经按照教程让 hello android 工作了 但是当 AVD 启动时 程序无法运行 我正在运行 Windows 7 64 位和 eclipse 3 5 2 运行 adt 0 9 9 和 SDK r7 sdk
  • 创建具有删除功能的自定义 UIButton 类

    我有一个 UIButtons 网格 当我点击 编辑 按钮时 我希望每个按钮上都出现一个删除按钮 按下该按钮时 会删除该按钮 以及关联的数据 有点像苹果的主屏幕 当你按住一个按钮时 它就会开始摆动 角落里有一个 X 根据这篇文章 子类 UIB
  • 协作时如何管理配置文件?

    我正在编写一个简短的脚本 在页面顶部包含一些简单的变量 我想和一位朋友一起处理它们 但我们不确定如何管理每次为我们中的一个人拉取后需要更改的变量 从而向 git status 添加不必要的垃圾 我想过为我们每个人创建不同的命名分支 然后主服