【Git】ブランチごとに別の内容にする

スポンサーリンク

プロジェクトをGitHubに公開する時に、開発関係全てのファイルを公開はできないので、厳選したファイルだけ公開したいというもの。
よい方法がないものかと調べたら、ブランチごとに別の内容にする事が出来た。

ブランチごとに別々の.gitignoreを持つという方法で、ブランチをチェックアウトした時に .gitignore ファイルはマージされないように設定しブランチ別に登録したままが使われる。

設定

.git/config ファイルに以下の設定を記述。

[merge "ours"]
    name = "Keep ours merge"
    driver = true

次に、マージから除外したいファイルを .gitattributesファイルに記述。
ついでに、README.md ファイルも別々にする。

/.gitignore merge=ours
/README.md merge=ours

公開する方のブランチには、.gitignoreファイルに公開したくないファイルを列記。
プロジェクト全体(master)は、お家Gitサーバで管理し公開用ブランチをGitHubにpushする。

これは便利、色々応用できそう。Git、ほんと素晴らしい!

補足

  • [merge "ours"]の設定は、 ~/.gitconfig に記述してもよい。又、マージを実施するすべてのマシンで設定する必要がある。この設定がされていないマシンでマージを行った場合、.gitattributes の設定に関係なく通常通りのマージが実施されてしまう。
  • .gitignoreが異なるマージ(変更)した時にはリポジトリ内に無視したいファイルがリポジトリ内に残っているので、下記記事の手順で削除する。
    .gitignoreが異なるマージ(又は.gitignoreを変更)した時の処理 [新石器Wiki]

参照記事

参考

  1. .gitignore ファイルをブランチごとに別の内容にする – Qiita
  2. masterブランチではCSSを管理しdevelopでは管理しないなど、ブランチごとに特定ファイルの内容を変える
Git
スポンサーリンク
yokoをフォローする
The modern stone age.

コメント

タイトルとURLをコピーしました