0

ルート git ディレクトリがあります。ルート ディレクトリの下に別の独立した git リポジトリをサブディレクトリとして配置したいと考えています。

repoを使用しているため、 submoudlesを使用できません。遠く離れたスタンドアロンのディレクトリにリンクされたサブディレクトリをシンボリックにすることを考えました。一番外側のディレクトリには、新しい git リポジトリが含まれます。

別のオプションDetach (move) subdirectory into separate Git repository using git subtree.

  1. レポツールで作業するときに使用できますか?
  2. シンボリックリンクソリューションよりもサブツリーを使用する方が良いですか?
4

1 に答える 1

0

subtreeは、 とは異なりsubmodule、管理するサブディレクトリのソース コードを取得するために追加の手順を必要としません。つまり、単純なgit cloneorは、git checkoutで管理されるディレクトリのすべての内容を「配信」しsubtreeます。したがって、Git で動作するツールはすべて、Repo を含むサブツリーで問題ないはずです (ただし、個人的にサブツリーで正確に試したことはありません)。

ただし、サブツリーで管理されているディレクトリを更新するには、手動で行う必要があることに注意してください。つまり、サブツリーが指しているコミットは Git リポジトリ自体に保存され、git subtree mergeまたはを使用して手動でのみ更新できますgit subtree pull

サブツリーで管理されたディレクトリは、リポジトリ内の他のディレクトリであるかのように考えてください。追加する唯一のことsubtreeは、他のブランチ(リモートブランチを含む)を特定のプレフィックス(つまりサブディレクトリ)にマージできることです。そして、それはとてもうまくいきます。

外部リポジトリへの synlink を使用すると機能しない場合があります - これに関する別の SO 回答を参照してください - https://stackoverflow.com/a/1507967/302343

于 2013-11-06T21:35:44.617 に答える