5

ライブラリとさまざまなアプリケーションで構成されるプロジェクトがあります。

foo/
foolib/
bar/
baz/
qux/foo/

すべてのアプリケーションは、静的ライブラリであるfoolibにリンクしています。

fooのgit commitで、 foolibがあった場所の SHA1 ID を記録し、foolibにコミットされていない変更があるかどうかを報告するためにfooのgit statusを使用したいと思います。

しかし、 foolibのコピーをすべてのアプリケーションのサブディレクトリとして持つようにはしたくありません。肥大化するだけでなく、変更をコミットせずに複数のアプリケーションでfoolibへの変更を試すことができなくなります。

../foolib を指す .gitmodules ファイルを作成しようとしましたが、git statusによって完全に無視されるようです。また、foolibをfoo内のソフトリンクにしてみましたが、gitはリンクをたどるのではなく、ソフトリンクをファイルとして扱っているようでした。

私が望んでいることは可能ですか、または代替のワークフロー ソリューションはありますか?

私のパブリック リポジトリでは、構造は同じで、各アプリケーション (および folib) はパブリックから個別に複製されています。

4

1 に答える 1

1

アイデアは、サブモジュールとして宣言する別のレポfooProjectを作成することです。

  • foo
  • foolib

appProjects(の代わりに親プロジェクトを呼び出す場合はfooProject、すべてのサブディレクトリをサブモジュールとして宣言できます: foofoolibbarbaz...)

サブディレクトリ (fooまたはfoolib) のいずれかが変更され、新しいコミットが行われた場合は、親リポジトリに戻ってコミットし、異なるサブモジュールの SHA1 を記録します。

于 2012-11-07T07:42:06.423 に答える