2015-10-11 16 views
6

ブランチ固有のファイルを同じ名前にしたいとします。このファイルを変更せずに開発ブランチからマスターにマージできる必要があります。GitHubでブランチ固有のファイルを作成する方法

例:
readme.mdという2つの異なるファイルがあるとします。私はコンテンツを持っています:MASTERと別のDEVです。しかし、私がそれをやろうとすると、プルリクエストを作成しながらGitHubはこのファイルをマージしようとしますが、これはまさに私の問題です。変更を加えるたびにGitHubがこのファイルをマージする必要はありません。

この問題を解決するにはどうすればよいでしょうか?

+0

ファイルがすでにコミットことはありますか? – grimsock

+0

@grimsock:はい、私が編集で言及したように、私の場合、readme.mdとCI構成ファイルのような2つのファイルがあるので、明らかにコミットする必要があります –

答えて

4

たとえば、projectはマージするブランチの名前、README.mdはブランチ固有の情報を保持するファイルの名前です。

私は、次の手順を示唆している:

  1. マージプロジェクトのブランチを、しかし必ず変更はコミットされていない、と

    $ git merge --no-commit --no-ff project 
    
  2. Unstage README.mdファイルを高速転送されません作成し、その電流をチェックアウト分岐バージョン

    $ git checkout HEAD -- README.md 
    
  3. コンプリートマージ

    $ git commit 
    

また、マージ競合の場合には、ファイルの枝の特定のバージョンを保持しますマージドライバをインストールすることは理にかなって。このような場合、ブランチ固有のファイルの競合を手動で解決する必要はありません。

このようなマージドライバは通常oursと呼ばれ、次のように定義されます今

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

、あなたは、この合併が使用されなければならないとき、.gitattributesファイルで指定することができます。我々の場合には

は、.gitattributesに次のルールを追加し、それをコミットするために必要とされる:

README.md merge=ours