krsakai / iOSStudy

1 stars 0 forks source link

GitSubmoduleについて #31

Closed krsakai closed 7 years ago

krsakai commented 7 years ago

GitSubmoduleについて

GitSubmoduleはGitリポジトリに外部のGitリポジトリのバージョン参照を含める仕組みのことで、 一言で言うと、 ある特定のディレクトリについては、別のリポジトリで管理しメインリポジトリはそのコミットの参照番号だけを管理する です

現場だと、Pods と Carthage のライブラリファイルもレストランボードのGitメインリポジトリで管理していたが、ライブラリを取り込んだ時の差分がライブラリファイルの物全て出てきてしまい、レビューが困難だったため、ライブラリは別リポジトリで管理し、メインリポジトリは別リポジトリの参照だけ管理しましょう という事になった

使う時に少し癖があるため理解のため解説しておく Submoduleの解説 興味があれば → http://qiita.com/sotarok/items/0d525e568a6088f6f6bb

使い方と解説

Pods / Carthage がサブモジュール管理なリポジトリを扱う場合 ※ 要点としてリポジトリが3つある ● メインプロジェクトのリポジトリ ● CocoaPodsのライブラリを管理するリポジトリ ● Carthageのライブラリを管理するリポジトリ

◯ 使う編

  1. メインリポジトリをgit cloneしてくる
  2. プロジェクト直下の Pods / Carthage は別リポジトリへの参照が貼られている
  3. プロジェクト直下で 以下のコマンドを実行する git submodule update --init
  4. Pods / Carthage に実際のライブラリの実ファイルが取り込まれた
  5. Carthage のライブラリのビルドファイルはGit管理下においていないため、Carthageビルドを実行する carthage build --platform iOS

これでライブラリファイルがビルドされ、プロジェクトで使用できるようになる

◯ 新規追加編

  1. Podfile や Cartfile に取り込むライブラリを追加して下記コマンドを実行する
    pod install  //Podの場合
    carthage update --platform iOS --no-use-binaries // carthageの場合
  2. Pods / Carthage 配下を SourceTreeで開く
  3. 追加したライブラリの差分が表示されるので、一式コミット (Pushもしてもよい)
  4. プロジェクト配下をSourceTreeで開く
  5. 3でコミットした事により 、Pods / Carthage のコミットハッシュ値が変更されているので、それをコミット (Pushもしてもよい)

sachika1224 commented 7 years ago

【手順】(やったこと) ①↓↓とりあえずこのリンクを踏んで招待を受ける  https://github.com/krsakai/LibrarySample/invitations  https://github.com/krsakai/LibrarySample-Carthage/invitations  https://github.com/krsakai/LibrarySample-CocoaPods/invitations ②git clone https://github.com/krsakai/LibrarySample これをやって、LibrarySample直下のCathageフォルダとPodsフォルダに何もないことを確認した後、 ③LibrarySample直下で git submodule update --init をやった後に、直下のCathageフォルダとPodsフォルダ見るとちゃんとファイルが出来た という事を確認すればおkかな

https://github.com/krsakai/LibrarySample このページの Carthage ってとこ押すと、別のリポジトリ(LibrarySample-Carthage)に飛ばされているという事が分かればおk