Github忽略了pull-requests中的下游配置文件

时间:2017-03-04 07:29:13

标签: git github merge pull-request

我们有两个存储库: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文件,并以不同方式对其进行了更改 导致冲突(这似乎是一个黑客,但显然需要!)
  2. 添加了内容为config.lua merge=ours
  3. 的.gitattributes
  4. 添加.gitconfig内容: [merge "ours"] driver = true
  5. github PR仍会检测到更改并声称它无法自动合并。
  6. 我还认为必须创建合并冲突是一个糟糕的黑客攻击,因此这个合并策略会触发(参见Is it possible to exclude specific commits when doing a git merge?)。如果有多个下游分支,它将使过程变得复杂。

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

1 个答案:

答案 0 :(得分:0)

首先,GitHub只是Git repos的一个很好的前端。所以这是一个Git问题,因为GitHub PR实际上是关于合并两个分支 - 没有办法在那里排除文件。

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

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