web-dev-qa-db-ja.com

githubプロジェクトの一部を複製する

重複の可能性:
gitリポジトリのサブディレクトリのみを複製する方法はありますか?

Githubプロジェクトの一部を複製しようとしていますが、ルートフォルダーしか取得できません。 githubを使おうとするのはこれが初めてで、tortoisegitをインストールしたばかりです。チェックアウトしたいフォルダーを取得できるsvnとcvsに慣れていましたが、gitはルートフォルダーに.gitファイルしか持っていないようです。何をすべきかわからない。

25
Dennis

サブツリーのマージがあります。

しかし、これは簡単ですが部分的な解決策であり、おそらくあなたのニーズには十分です。ただフォークして定期的にマージバック

  1. リポジトリをフォーク(クローン)
  2. 不要なパーツを削除し、サブフォルダーを必要な場所に移動します
  3. コミット

将来、アップストリームのGitコードと同期してバックアップしたい場合は、フォークとマージするだけです。保存したファイルはアップストリームのファイルと同期してバックアップされ、git statusから簡単に確認できる小さなクリーンアップが必要になる場合があります。

8
JasonSmith

Gitコミュニティでは、必要なものは「部分チェックアウト」と呼ばれます。現在Gitではサポートされていませんが、メーリングリストに時々登場します。 Gitには、部分的なチェックアウトをサポートするために必要な内部の断片がありますが、ユーザーとしてそれらを利用する簡単な方法はありません。 Gitは最終的に部分的なチェックアウトを実行できるようになると思いますが、それが実現するまでにはしばらく時間がかかる場合があります。

jhsの回答 (サブツリーマージ; rm、mv、commit、merge)に加えて、 サードパーティの「サブツリー」コマンド もあります。部分的なチェックアウトを処理します。それが主な目標ではありませんが、部分的なチェックアウトを処理するためにそれをどのように使用できるかは明らかではありません。すでにGitを十分に理解している場合は、それを解決できますが、Gitを初めて使用する場合、このサブツリーコマンドはかなり不透明になります。

最後に、最新のファイルをダウンロードするだけの場合は、次のことができる可能性があります se git archive特定のブランチまたはタグ(または任意のコミットっぽい)のtarファイルをダウンロードする 。これはGitHubでは機能しない可能性があります(サーバー構成によって異なります)。チェックしていません。直接機能しない場合でも、独自の「ベア」にクローンを作成し、リポジトリをミラーリングして、そこからアーカイブをプル(サブツリー)することができます。

7
Chris Johnsen