web-dev-qa-db-ja.com

git:複数のリポジトリがまだ「グループ化」されている

angularフロントエンドとREST APIはC#で実行されます。フロントエンドにはWebStormとバックエンドのVisual Studioを使用します。ここで、新しいバージョンコントロールを導入する必要があり、Team Services(Git)を使用することが決定されました。

フロントエンドとバックエンド間で共有されるコードやアセットはありませんが、フロントエンドはバックエンドを必要とし、バックエンドはこの特定のフロントエンドでのみ使用されるため(そして今後も使用されるため)、論理的に結合されます。

私はGitにかなり慣れていませんが、サブモジュール、サブツリーなどが何か(少し)知っています。

私の最初の考えは次のとおりでした。フロントエンドがアクセスできる場所にバックエンドが存在する限り、フロントエンドとバックエンドを別々に公開できるため、2つのリポジトリを使用するのがよいでしょう。そして:

  • WebstormとVisual Studioは相互に干渉せず、コミットを「盗む」ことになります(私は個人的に迷惑をかけます)。
  • または、プロジェクトに属していないファイルを表示します。たとえば、Webストームでフロントエンドを開くと、すべてのバックエンドファイルが同じリポジトリにあるため、それらが表示されます。それとも私は間違っていますか?

一方、フロントエンドとバックエンドが常に互換性があることを自分で確認する必要があります。難しいことではないと思います。しかし、これらの2つのリポジトリはgitで完全に分離され、2つの間には何の関係もありません。

私の知る限り、特定のサブディレクトリを使用するようにgitまたはwebstorm/visual studioに指示することはできません。

だから、私の質問になります。この場合、何を勧めますか?

  • 2つのリポジトリ
  • サブディレクトリのみの1つのリポジトリ
  • サブツリーを持つ1つのリポジトリー(および空の親リポジトリー?)
  • 何か違います

前もって感謝します

2
Arikael

このようなプロジェクトについて私が考える最大の問題は、「フロントエンドとAPIを同期させるにはどうすればよいですか?」存在しないものやAPIで廃止されたものをフロントエンドに要求させたくありません。

この問題を解決する最も簡単な方法は、1つのリポジトリを用意することです。このリポジトリでは、APIとフロントエンドの変更はすべて同じコミット/ PRにあります。

しかし、これは多くの場所でバラバラになります。 APIやフロントエンドを後で交換したい場合は、さらに難しくなる可能性があります。また、ビルドステップが長い場合や、テストスイートが大きい場合は、展開を行うときに多くの時間を浪費する可能性があります。

別の投稿 には多くの長所と短所がありますが、これは結局のところ、チームの規模と、展開の計画にどのように結びついていると思います。それが4人までの小さなチームであれば、おそらく1つのリポジトリで十分です。大規模なチームがあり、専用のバージョンなどがある場合、1つのリポジトリの管理が手に負えなくなる可能性があります。

繰り返しになりますが、質問と回答には多くの考慮事項が含まれているため、他の投稿もご覧になることをお勧めします。

プロジェクトを複数のサブプロジェクトに分離する場合

3
JRJurman