サブモジュールチュートリアル をざっと見て、 botoプロジェクト からサブモジュールを作成しました。次に、このプロジェクトのサブセット、具体的には boto フォルダーのみが実際に必要であることを発見しました。
このフォルダを指すようにサブモジュールを変更したいと思います。 .gitmodulesを見ると、
[submodule "backup/src/boto"]
path = backup/src/boto
url = https://github.com/boto/boto.git
https://github.com/boto/boto.git の代わりに使用するURL URLを変更した後、botoフォルダーをローカルで削除して再プルする必要がありますか?
サブモジュールのURLは常にリポジトリを指しているだけではないかと心配しています。gitが一般的に「狭いクローン」をサポートしていないのと同じように、リポジトリのサブフォルダのみを指定することはできません。
リポジトリ全体をサブモジュールとして使用できない場合は、botoから複製された新しいリポジトリを常に作成し、次のようにcronジョブを設定できます。
git fetch
そのディレクトリへのリポジトリgit filter-branch
は、サブディレクトリが最上位にあるブランチを更新します。リポジトリの一部のみを複製することはできません。これは、gitがリポジトリをオブジェクト全体として扱うためです。取得すると、allになります。
したがって、ここでの解決策は、サブモジュールを別のディレクトリにフェッチし、シンボリックリンクを使用して目的を達成することです。
あなたがしたいのは、サブモジュールにブランチを作成し、フォルダを上に移動し、不要なものを削除することです。その後、代わりにそのブランチを管理できます。変更をプッシュアップする場合は、最初にマージを戻すことができるはずです。 Gitは、ファイルを移動し、マージを正常に実行したことを認識します。
お役に立てれば。