GoやReactなど、featureブランチではビルドしたファイルを管理したくない(=マージリクエストで差分が多すぎて何も見れなくなるのを防ぎたい)けれど、デプロイ用のブランチではビルドしたファイルを引っ張ってきたいので管理したいといった場合に、.gitignoreをブランチごとに設定する方法。
.gitignoreの設定
こちらを参考に設定しました。
対象のブランチをチェックアウトした状態で下記の手順を実施。
.gitignoreに以下を追記
[merge "ours"]
name = "Keep ours merge"
driver = true
次に.gitattributesに以下を追記
/.gitignore merge=ours
さらに、.gitignoreを該当ブランチで所望する設定に変更
ignoreされていたファイルをgit管理下に戻す
私の場合、該当のビルドファイルが既に.gitignoreに追加されていて、そのファイルを特定のブランチでは管理対象にするために.gitignoreから除外した。
しかしながら、それだけでは一度ignoreされてしまったファイルはステージされない。
次のコマンドで対象のファイルをaddする。
git add -f [対象ファイル名]
めでたしめでたし。