私は Git にまったく慣れていません。私は SVN から来て、非常に強力な :external 機能を見つけました。ここGitでは、似たようなものは見つかりませんでした:
- サブモジュールは、必ずしも必要ではないプロジェクト モジュールを追加するのに最適です。それらはレポのクローン作成後に初期化する必要があり、元のプロジェクトのサブディレクトリのみを含めることはできません。
- サブツリーはライブラリを追加するのに非常に適しています (サブディレクトリを含めることもできます) が、それらをプッシュするのは本当に面倒です。
シナリオは次のとおりです。いくつかのライブラリを含めたいプロジェクトがあります。これらすべてのライブラリを変更し、それらを独自のリポジトリにプッシュする可能性が必要です。さらに、このライブラリの一部は、より大きなプロジェクトのサブディレクトリです (たとえば、プロジェクトにデモや readme ファイルも含まれている場合、それらのディレクトリはプロジェクトに含めません)。
どうやってやるの?
私はもう試した:
- http://progit.org/book/ch6-7.html + http://posterous.timocracy.com/git-sub-tree-merging-back-to-the-subtree-for (サブディレクトリのみをマージすることはできません。許可されていないか、見ることができません);
- http://www.tipstank.com/2011/02/21/git-subtree-notes-and-workflows/ (上記と同じ、サブディレクトリの包含を処理しない);
- http://psionides.eu/2010/02/04/sharing-code-between-projects-with-git-subtree/ (プッシュについては何も表示されません);
- http://h2ik.co/2011/03/having-fun-with-git-subtree/ (プッシュについては何も表示されません)
さて、あなたがこの時点に到達した場合、あなたの忍耐に感謝します.今、私の結論は「Gitではサブツリーのプッシュは許可されていない」ですので、別のことを試してみたいと思います ç_ç