Git

.gitignoreをブランチごとに設定して、既にignoreしてしまったファイルをgit管理下に復活させる

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 [対象ファイル名]

めでたしめでたし。