Git - シンボリックリンクの扱い方 質問する

Git - シンボリックリンクの扱い方 質問する

Git でシンボリックリンクを処理する正しい方法は何ですか?

次のような構造になっています。

Vendors
  Module A
  Module B
  Module C
App
 Code
   Modules
     Core Module 1
     Core Module 2
     Module A (symlinked to vendors)
     Module B (symlinked to vendors)
     Module C (symlinked to vendors)

アプリケーションのすべてのコア コードが含まれるメインの App ディレクトリがあります。さらに、メインの app ディレクトリにシンボリック リンクされて統合されるモジュールが含まれる vendor ディレクトリもあります。

重要なのは、ベンダー ディレクトリとメイン アプリ ディレクトリの両方が同じリポジトリ内でバージョン管理されていることです。

したがって、git にシンボリック リンクを保存し続けるようにするべきでしょうか、それともシンボリック リンクを無視する方法を見つけるべきでしょうか?

ベストアンサー1

すべての開発者が使用するオペレーティング システムがシンボリック リンクをサポートしている限り、Git はシンボリック リンクを問題なく処理できます。これらのシンボリック リンクが存在することに依存しているため、開発環境はすべてシンボリック リンクをサポートしていると想定します。

何かを Git リポジトリに含めるかどうか (シンボリック リンクなど) を決定するには、次の点を考慮してください。

  • それはリポジトリ内の何らかのツールまたは他のプロセスによって生成されたファイルですか? もしそうなら、それを無視して各ユーザーにファイルを生成させ、常に最新バージョンを使用できるようにするのが最善です。
  • そのファイルは、特定のユーザーの開発環境に固有のものでしょうか、それともすべての環境で使用されるものでしょうか。Emacs バックアップ ファイルを無視する設定など、特定のユーザーの環境特有のものであれば、リポジトリに含めるべきではありません。すべての開発者が必要とするもの、または本番環境用のアプリケーションをビルドするために必要なものであれば、リポジトリに含める必要があります。

あなたの場合、シンボリックリンクは生成されていないようですが、すべての環境で必要なので、リポジトリに配置しても問題ないはずです。

ただし、作成するときは、絶対シンボリックリンクではなく相対シンボリックリンクとして作成してください。そうすれば、リポジトリがどこにクローンされているかに関係なく機能します。これを行う最も簡単な方法は、ディレクトリを Modules ディレクトリに変更し、そこからシンボリックリンクを作成することです。

cd App/Code/Modules
ln -s "../../../Vendors/Module A" "Module A"

おすすめ記事