Git サブモジュールを使用することは、私の開発ワークフローにとって何となく面倒だと感じています。Git サブツリーと Gitslave について聞いたことがあります。
- 複数のリポジトリ プロジェクト用のツールは他にもありますか? また、それらをどのように比較しますか?
- これらのツールは Windows で実行できますか?
Git サブモジュールを使用することは、私の開発ワークフローにとって何となく面倒だと感じています。Git サブツリーと Gitslave について聞いたことがあります。
どちらが最適かは、ニーズ、欲求、ワークフローによって異なります。それらはある意味で半同形ですが、特定のタスクに対して他のものよりも使いやすいものがあります。
gitslaveは、サブプロジェクトの制御と開発をスーパープロジェクトとほぼ同時に行う場合や、さらに、すべてのリポジトリを同時にタグ付け、ブランチ、プッシュ、プルなどする場合に便利です。gitslave は、私が知っている Windows ではテストされていません。パールが必要です。
git-submoduleは、サブプロジェクトを制御しない場合、またはサブプロジェクトが変更されても特定のリビジョンでサブプロジェクトを修正したい場合に適しています。git-submodule は git の標準部分であるため、Windows で動作します。
git-subtreeは、git の組み込みサブツリー マージ戦略のフロントエンドを提供します。単一リポジトリの「統合された」git 履歴を使用したい場合に適しています。サブツリーのマージ戦略とは異なり、異なる (ディレクトリ) ツリーへの変更をエクスポートして元のプロジェクトに戻す方が簡単ですが、gitslave や git-submodule の場合ほど自動ではありません。
repoは理論的には gitslave に似ていますが、私が見つけた Android 以外の操作については十分に文書化されていません。これはかなり Google Android 開発モデルに専念しており、(任意のコマンドを実行することはできますが) いくつかの git コマンドのみをネイティブにサポートしています。分岐はかなり難しいようです。
kitenet のmrは、複数のバージョン管理システムを使用している場合に使用したいものですが、最小公分母アプローチのため、主に git のみのスーパープロジェクトに制限されています。任意のコマンドを実行する方法はありますが、あまり統合されていません。
私は現在、サードパーティのライブラリに関連するだけでなく、開発にサブモジュールを使用しています。特にマージまたはリベースの競合の原因となる場合に、サブモジュールを使用して生活を楽にする方法がいくつかあります。サブモジュールの競合に関係する 2 つのコミットを取得するには、ls-tree を参照してください。これはおそらく、人々が対処するのが最も難しいサブモジュールの部分です。今のところ、スクリプトを使用すると、これをより簡単に操作できます。Git の将来のバージョンでは、それらを処理するためのより優れたネイティブ サポートが提供されるはずです。
お役に立てれば。