如何在 GitHub 上创建特定于分支的文件

How to create branch-specific files on GitHub

我想要具有相同名称的特定于分支的文件。我需要能够在不更改此文件的情况下从我的开发分支合并到主分支。

例如:
假设我想要两个不同的 readme.md 文件。在一个中我想要内容:MASTER 在另一个中 DEV。但是如果我尝试这样做,在创建 pull-request GitHub 时会尝试合并这个文件,这正是我的问题。我不希望 GitHub 每次更改时都合并此文件。

解决这个问题的最佳方法是什么?

假设 project 是要合并的分支的名称,README.md 是保存分支特定信息的文件的名称。

我建议采取以下步骤:

  1. 合并项目分支,但确保更改未提交且未快进

    $ git merge --no-commit --no-ff project
    
  2. 取消暂存 README.md 文件并检查其当前分支版本

    $ git checkout HEAD -- README.md
    
  3. 完成合并

    $ git commit
    

此外,安装合并驱动程序是有意义的,该驱动程序将在发生合并冲突时保留文件的分支特定版本。在这种情况下,您永远不需要手动解决分支特定文件中的冲突。

这样的合并驱动通常被称为ours,定义为:

$ git config --global merge.ours.driver true

现在,您可以在 .gitattributes 文件中指定何时使用此合并。

在我们的例子中,需要将以下规则添加到 .gitattributes 并提交:

README.md merge=ours