2016-04-15 13 views
1

私たちはたくさんのプロジェクトでレポを持っています。私はレポ内の「oracle」プロジェクトにのみ関心があります。しかし、コードベースをプルダウンすると、他のフォルダ内に "oracle"と呼ばれるサブディレクトリが見つかりました。一致する親フォルダのみを取得する方法はありますか?リポジトリのルートにあるフォルダのみを尊重するためのGit sparse checkout?

git init <repo> 
cd <repo> 
git remote add -f origin <url> 

git config core.sparseCheckout true 

echo "oracle/" >> .git/info/sparse-checkout 

出力

#ls -l 
    oracle 
    directory123 
    directoryabc 

#find . | grep "oracle" 
    directory123/sub1/sub2/oracle 
    directoryabc/sub1/sub2/sub3/oracle 
+1

'oracle'プロジェクトがリポジトリのルートにある場合、私は' oracle/'の代わりに'/oracle/'を書くとそのトリックを行うべきだという気持ちがあります。 – Jubobs

+0

うーん、それは動作します!あなたが好きなら答えとして提出することができ、私は受け入れます。 – luckytaxi

答えて

1

$GIT_DIR/info/sparse-checkoutoracle/を書き込むことにより、あなただけの親ディレクトリが「神託」と呼ばれているファイル(もしあれば)での作業ディレクトリを移入にあなたのGitのレポを言っている 。ディレクトリ

oracle/ 
directory123/sub1/sub2/oracle/ 
directoryabc/sub1/sub2/sub3/oracle/ 

がすべてこの条件を満たしています。 $GIT_DIR/info/sparse-checkout

あなたのGitのリポジトリのルートであるoracleディレクトリにsparse checkoutを制限したい場合は、あなたがoracle/、ない記述する必要があるが、/oracle/(スラッシュ大手注意してください)。

関連する問題