2016/04/27
Git管理でプロジェクト毎に細分化管理してみる
gitで管理を分岐してみる
機能毎(今回は静的ファイル)のサブ管理をしてみました。
gitにはsubmoduleという概念があります。
会社で例えれば、全体の管理部署があって
その中で更に部署別にマネージャーがいると想像していただければしっくりくるでしょうか?
目的としては
「このファイル(フォルダ配下)はもっと細分化して管理したい!」
ってな方向けの情報です。
ではGO.
submodule機能の導入
1 | git init |
で、そのディレクトリを別git管理として初期化します。
次に細分化管理の対象とするファイル/ディレクトリを管理対象とするために
1 2 3 4 | git remote add hogehoge {{ リモートリポジトリのサーバーURL }} git add {{ 対象ファイル/ディレクトリ名 }} git commit git push hogehoge {{ 細分化対象のリポジトリのサーバー指定 }} |
一旦これにて細分化したファイル群をアップします。
事前に管理サーバー上では
1 2 3 | mkdir -p /var/www/git/hogehoge.git cd /var/www/git/hogehoge.git git init --bare --shared |
と実行して中間リポジトリ(要は情報を統括するデータバンク的存在)を作っておく必要があります。
gitがインストールされていれば特別な操作は必要ありません。
git管理の最上位ディレクトリで
git submodule init
git submodule add {{ 管理するサーバーのディレクトリ }} {{ 対象のフォルダ }}
と実行するだけ。
インストールする時は
1 | git clone {{ gitリポジトリ(サーバーとそのフルパス) }} {{ 生成するディレクトリ名(任意) }} |
ここまでは今までと同じです。
次にこのプロジェクトにひとつ前で記載した細分化ファイル群を持ってきます
1 2 | git submodule init git submodule update |
これだけです。
細分化したファイル・ディレクトリを別のプロジェクトなどで置き換えたい時は
そのディレクトリの最上位に移動してブランチを切り替えるだけでOKです。
既にフォルダが親gitで管理されている場合は
1 | git rm -rf {{ 細分化して管理したいディレクトリ }} |
で親のgitから外した上で一度、物理ファイルも削除してしまいます。
(念のためバックアップをしましょう!)
1 | rm -rf {{ 細分化の管理対象ディレクトリ }} |
これでOKです。
あとは最上位のディレクトリで
1 2 | git submodule init git submodule update |
を実行して完了です!
Author Profile
スターフィールド編集部
SHARE