답변:
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-pull하는 방법
존재하는 내용을 복사하여 붙여 넣기 :
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가 원하는 것을 수행하려면 (하나의 디렉토리에서만 작동) .git/info/sparse-checkout
위의 단계를 수행 할 때 하나의 디렉토리를 추가 하십시오.
@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
"이봐 요"
git clone --filter
힘내 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