【问题标题】:Git: Same File that varies on different branchesGit:相同的文件在不同的分支上有所不同
【发布时间】:2015-07-29 11:41:18
【问题描述】:

我们的应用程序的分支 master、edge、test、devl 运行在四个 url prod.app.com、edge.app.com、test.app.com、devl.app.com

我们的工作流程是 devl -> test -> edge -> master

目前我们面临一个问题,即所有分支上的某些配置都发生了变化。我们有一些文件在 4 个分支上会有所不同,例如站点 url、数据库设置等。所以我们如何通过 git 轻松管理这些文件。我们无法在 Git 忽略中添加它,因为我们无法频繁访问 Web 服务器以直接在 Web 服务器中进行更改。

此外,我们有大约 14 个配置文件(用于 14 种不同的语言),而且这些配置文件经常更改代码,因此我们不能忽略这些文件。我们也不能像link 中指定的那样合并文件,因为更改已经存在,我们需要将这些更改推送到服务器

因此,目前当我们需要更改 edge 的配置时,我们正在更改 devl 的配置,然后分支推送到 test,然后再到 edge。所以在这个过程中,我们的开发和测试将停止,所以请告诉我们我们可以实施的最佳方法。

【问题讨论】:

标签: git github gitlab


【解决方案1】:

使用git cherry-pick,您可以将相同的补丁应用到所有分支。

如果您的 devel 分支都是 master 分支的所有子分支,那么您也可以仅将更改应用到 master,然后将 git rebase 其他分支应用到更新后的 master。

但我个人不会将配置与其他来源放在一起。将它们添加到 .gitignore。您仍然可以创建另一个仅包含配置文件的项目。

【讨论】:

  • @rudemeier 我不知道这是一个愚蠢的问题,但出于好奇.. 是否可以仅使用配置文件创建另一个分支,并且在 web-server 中我们可以配置以显示两个分支的文件吗?
  • 创建一个没有 parentsgit checkout --orphan config 的分支并提交这样的配置文件。然后切换到mastergit checkout master,只获取配置文件git checkout config -- filename
  • 顺便说一句,你也可以看看git submodule
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
相关资源
最近更新 更多