質問: 例えばAとBというgitリポジトリの中に共通のライブラリ等があって、 それをシンボリックリンクでワンソースで管理したいという要件があるとします。 ディレクトリ例 ``` A/.git /lib -> ../lib B/.git /lib -> ../lib lib/ ``` しかし、このような場合にA・Bでcommitするとシンボリックリンクはファイルとして扱われてしまいますので、そこからさらにpushした時にlib以下のファイルの実体まではpushされないかと思います。 これは、例えばアプリサーバーと管理画面サーバーでサーバーを分けてて中では所々同じソースを使っている環境なんかにこのような事が発生すると思うのですが、こういった場合の最適解を教えて頂きたく存じます。
回答: 共通のライブラリをシンボリックリンクでワンソース管理することが少し奇異に思えます。 一般的な解決策として、`git submodule`を利用する方法があります。 この場合、AとBのそれぞれのライブラリを更に別リポジトリで管理しなければならないため要件とは違いが感じられるかもしれませんが、もともと独立したプロジェクトとライブラリなので、それぞれ別のリポジトリで管理するべきではないかと思います。 共通ライブラリ(もしくはリソース)がものすごく膨大で数GBもあるためにHDDの容量を食ってしまって困るといった場合には対処できなそうです。 以下のサイトが参考になると思います。