メインリポジトリ(プライベート)からいくつかのサンプルファイルを置くパブリックリポジトリを作成したい。 gitリポジトリから別のgitリポジトリにいくつかのフォルダーをソフトリンクする方法はありますか?
次に、このタスクにサブモジュールを使用する必要があります。
サブモジュールは、同じルートの下にある異なるgitリポジトリです。
この方法で、ルートリポジトリ内のフォルダーレベルで2つの異なるプロジェクトを管理できます。
Submodules
常に特定のコミットを指す、ソースツリーの専用サブディレクトリ内に外部リポジトリを埋め込むことができます。
git submodule
これまでのように、大きなプロジェクトをサブプロジェクトに分割します。
次を使用して、各サブプロジェクトをメインプロジェクトに追加します。
git submodule add <url>
プロジェクトをレポジトリに追加したら、初期化して更新する必要があります。
git submodule init
git submodule update
Git 1.8.2新しいオプション--remote
が追加されました
git submodule update --remote --merge
willfetch
各サブモジュールのアップストリームからの最新の変更、merge them in
、およびcheck out
サブモジュールの最新リビジョン。
ドキュメント のように説明してください:
--remote
このオプションは、更新コマンドでのみ有効です。スーパープロジェクトの記録されたSHA-1を使用してサブモジュールを更新する代わりに、サブモジュールのリモート追跡ブランチのステータスを使用します。
これは、各サブモジュールでgit pullを実行するのと同じです。
ただし、親レイヤーと共有されるコードに影響するCのバグ修正のシナリオでコミットをプッシュするにはどうすればよいですか?
繰り返しますが、サブモジュールを使用すると、コンテンツの一部としてメインプロジェクト内にコードが配置されます。フォルダ内でローカルに保持するか、サブモジュールの一部として保持するかの違いは、サブモジュールではコンテンツが別のスタンドアロンリポジトリに管理(コミット)されることです。
これは、サブモジュール-各プロジェクトがスタンドアロンプロジェクトである別のプロジェクト内のプロジェクトの図です。
git subtree
Gitサブツリーを使用すると、リポジトリを別のリポジトリのサブディレクトリとして挿入できます
submodule
と非常に似ていますが、主な違いはコードが管理される場所です。サブモジュールでは、コンテンツは別のリポジトリ内に配置され、そこで管理されます。これにより、コンテンツを他の多くのリポジトリに複製することもできます。
subtree
は、コンテンツをルートプロジェクトの一部として管理し、別のプロジェクト。
設定方法や使用方法を理解する方法を書き留める代わりに、すべてを説明するこの優れた投稿を読むことができます。
https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/