web-dev-qa-db-ja.com

gitリポジトリから1つのディレクトリだけを引き出す

プルしたいgitリポジトリがあります。私は通常のgit pullを問題なく実行します。問題は、リポジトリから特定のディレクトリを1つだけ必要とすることです。私の考えでは、次のようなルールで.gitignoreファイルを使用できると考えていました。

#Ignore all files
/
#Except the one I want
!/temp

問題は、これが機能しないことです。それはそれを行う正しい方法ですか、それともより良い方法がありますか?

9
Dan

git pullは、リモートブランチをフェッチしてマージします。

.gitignoreはローカルでのみ機能し、一致するエントリがgit statusに表示され、git addでインデックスに追加されないようにします。それはあなたが望むものではありません。

あなたがしたいのは、リモートブランチのfetchであり、そこから、必要なディレクトリ/ファイルを抽出します。

$ git fetch <remote> <branch>
$ git checkout <remote>/<branch> -- relative/path/to/file/or/dir

これで、ファイル/ディレクトリがブランチにあり、インデックスに追加されます。

35
c00kiemon5ter