回答:
git fetch
git checkout HEAD path/to/your/dir/or/file
path/...
(3)の「」は、「.../file
」を含むリポジトリルートのすぐ下のディレクトリから始まります
「HEAD」の代わりに、特定のコミットのハッシュコードが使用され、そのコミットに固有のリビジョン(ファイル)またはリビジョン(dir)を取得することに注意してください。
--
は必須ではありません。その後のビットを強制的にパスとして解釈します。あなたが名前のファイルがある場合はそう、そう、--help
あなたはこれらのハイフンでそれを前に置く、チェックアウトしたいことを必要とされるであろう:git checkout HEAD -- --help
空のディレクトリ:
git init
git remote add [REMOTE_NAME] [GIT_URL]
git fetch REMOTE_NAME
git checkout REMOTE_NAME/BRANCH -- path/to/directory
fetch
やcheckout
コマンドは必要ありませんremote add
。コマンドの後にプルリクエストを送信するだけで、マスターブランチ全体を取得できます。
答えを見つけて、あきらめないで、もう一度試すなど、多くのことを探した後、私はようやく別のSOスレッドでこれに対する解決策を見つけました:
そこにあるものをコピーして貼り付けるには:
git init
git remote add -f origin <url>
git config core.sparsecheckout true
echo <dir1>/ >> .git/info/sparse-checkout
echo <dir2>/ >> .git/info/sparse-checkout
echo <dir3>/ >> .git/info/sparse-checkout
git pull origin master
OPが望むことを行うには(1つのディレクトリでのみ作業)、.git/info/sparse-checkout
上記の手順を実行するときに、その1つのディレクトリをに追加します。
@cforbishに感謝します!
master
。git branch --set-upstream-to=origin/<branch>
正しく引き抜くようにしてください
不可能です。すべてのリポジトリをプルするか、何もプルする必要はありません。
多分このコマンドは役に立つかもしれません:
git archive --remote=MyRemoteGitRepo --format=tar BranchName_or_commit path/to/your/dir/or/file > files.tar
「Etvoilà」
git clone --filter
Git 2.19から
このオプションは、実際にはサーバーからの不要なオブジェクトのフェッチをスキップします。
現在のサポート状況を説明する詳細な回答を書きました:Gitリポジトリのサブディレクトリのみを複製するにはどうすればよいですか?
git clone
その領域で実装されるものはgit pull
どれも類似物を持つ可能性が非常に高いです。
この作品を試してテストしました!
mkdir <directory name> ; //Same directory name as the one you want to pull
cd <directory name>;
git remote add origin <GIT_URL>;
git checkout -b '<branch name>';
git config core.sparsecheckout true;
echo <directory name>/ >> .git/info/sparse-checkout;
git pull origin <pull branch name>
これがお役に立てば幸いです!
私のように理論的なファイルパスと例に苦労しているすべての人のために、ここで実際の例を示します。Microsoftはgit hubでドキュメントと例を提供していますが、残念ながら、このリポジトリの大量のトピックについてすべての例ファイルを収集しています。
https://github.com/microsoftarchive/msdn-code-gallery-community-s-z
パス内のMicrosoft Dynamics jsファイルのみに興味があった
msdn-code-gallery-community-s-z/Sdk.Soap.js/
だから私は次のことをしました
作成する
msdn-code-gallery-community-s-zSdkSoapjs\.git\info\sparse-checkout
ディスク上のリポジトリフォルダー内のファイル
git sparse-checkout init
Windowsでcmdを使用してそのディレクトリに
のファイル内容
msdn-code-gallery-community-s-zSdkSoapjs\.git\info\sparse-checkout
です
Sdk.Soap.js/*
最後に
git pull origin master