質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.11%

webアプリにおけるクライアントアプリ(iOS, Android)のGit管理について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,528

azuno_mix

score 71

現在、とあるWebアプリの設計段階でそろそろGitリポジトリなどの準備を進めていきたいと考えています。
今回の構成として、

  • Web上のRailsアプリ(APIも実装)
  • クライアント① iOS
  • クライアント② Android

となっています。

これら3つをまとめて一つのリポジトリで管理するのが良いのか、それとも別で hogeapphoge-ioshoge-androidというように別々にリポジトリを分けて管理した方が良いのか、決めかねています。

もし、まとめるとなると以下のようなものを想定しています。

リポジトリroot/
 ├ 
 ├ android/
 ├ ios/
 └ rails/

経験則などで、一つにまとめたほうがGitHub通知の連携の管理が楽だったり、などアドバイスが頂ければと思い質問させて頂きました。

よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

業務で、同様の構成のサービスを
「モジュールごとに別々のリポジトリを(Githubに)作成」
する方式で管理したことがあります。

その感想を、以下に記載させていただきます。

 欠点

特に不便に感じたのが「Issue の管理」でした。

例えば、1つの機能開発が複数のモジュールに改修を要することはよくあることですが、
その際、
「どのリポジトリに Issue を作成すれば良いのか?」
と、毎回、悩むことになりました。

結局、

  • 改修を要する全てのリポジトリに Issue を作成し、
  • その中のどれか1つの Issue をマスターとし、
  • その他の Issue にはSee [マスターの Issue の URL]などと記述する

という対応を取っていたのですが、面倒な上に、
「せっかく Issue を作成したのに後になってそのモジュールに改修が不要だったと判明し、そっと Issue をクローズする」
という、切ない思い(w)をすることもありました。

また、エンジニア以外の人にとっては通常、
「どの案件がどのモジュールに影響を及ぼすのか」
などは分からないので、Github の Issue を共通の案件管理ツールとして使うこともできませんでした。
(これに関しては、「それだけが理由」というわけではありませんでしたが)

今、思えば
「Issue を作成するリポジトリをどれか1つに決め、そのリポジトリ上で一元管理する」
という方法もあったかも知れませんが、それはそれで、別の問題や"やりにくさ"がありそうな気もします。

 利点

逆に、利点としては
「モジュールごとの開発/テスト環境や、デプロイの仕組みを構築しやすい」
ということでしょうか?

1つ1つのリポジトリのサイズが小さくなるので、
git clonegit checkoutが遅くてイライラする」
というようなことも、避けられたかと思います。


個人的には、次回、同様の構成のサービスを開発する際は
「1つのリポジトリで全てのモジュールを管理」
する方式を採りたいと考えています。

以上、ご参考までに。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/16 15:52

    実際の業務での経験を踏まえて利点や「やりにくかった」点をまとめてくださり、大変参考になる知見をありがとうございます。
    その点を踏まえて自分のプロジェクトに落とし込んでどちらかを選択してみたいと思います。
    ありがとうございました!

    キャンセル

+1

基本的に木の実でいいと思いますが、1つの判断材料としては hogeapp, hoge-ios, hoge-android 間で相互にファイルを参照しているかどうかだと思います。

例えば hogeapp 配下から hoge-ios 配下のファイルを参照するのであれば、まとめておいた方がいいと思いますし、それぞれが完全に独立しているのであればリポジトリもわけていいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/16 15:53

    なるほど、共有しているファイルがあるか、という点も一つの指標になるんですね。
    参考になります。ありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.11%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる