【问题标题】:Github ignore downstream configuration files in pull-requestsGithub 忽略拉取请求中的下游配置文件
【发布时间】:2017-07-24 10:05:22
【问题描述】:

我们有两个存储库:Upstream 和 Downsteram,有一个 config.lua 文件,它们之间可能不同。我们想使用从下游到上游的拉取请求(反之亦然),同时忽略config.lua 文件。

不可用的相关 SO 答案:

我们不想每次都花时间排除config.lua 文件,所以Github - Pull Request, ignore some file changes 中的答案对我们不起作用。

这个答案 (Using git, how do I ignore a file in one branch but have it committed in another branch?) 显然不再起作用了(无论如何,这是相同的 master 分支)。

我无法让 Github 使用 https://stackoverflow.com/a/8014154/7656871 中给出的答案。 我尝试了以下方法:

  1. 创建了 config.lua 文件并对其进行了不同的更改,以便 引起冲突(这似乎是一种 hack,但显然需要!)
  2. 添加了带有内容config.lua merge=ours的.gitattributes
  3. 添加了 .gitconfig 内容: [merge "ours"] driver = true
  4. github PR 仍然检测到更改并声称它无法自动合并。

我还认为必须创建一个合并冲突是一个糟糕的 hack,所以这个合并策略会触发(参见Is it possible to exclude specific commits when doing a git merge?)。如果有多个 Downstream fork 会使过程变得复杂。

在进行拉取请求时,有没有简单的方法可以忽略一个下游配置文件?

【问题讨论】:

    标签: git github merge pull-request


    【解决方案1】:

    首先,GitHub 只是 Git 存储库的一个漂亮前端。所以这是一个 Git 问题,因为 GitHub PR 实际上是关于合并两个分支 - 无法排除那里的文件。


    解决这个问题的方法通常是根本不提交配置文件,而是在 gitignore 上添加 foo.cfg 时提交 foo.cfg.example

    如果你无法避免提交配置文件,为什么不给他们唯一的名字 - 例如。 foo-team1.cfgfoo-team2.cfg 等?这样他们就会被跟踪,但您不会因为其他人的配置更改覆盖您的配置更改而发生冲突或问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-16
      • 2015-04-26
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多