programing

git로 특정 디렉터리를 가져오는 방법

stoneblock 2023. 7. 3. 22:31

git로 특정 디렉터리를 가져오는 방법

git를 사용한 , 것처럼 제 하는 것처럼 . git 사프용로와하는젝있트가는트하내프젝데위로찬다원니를마합버전가같은과로지끌를기특복정디오리렉터를제어/javascript나하거와j▁i,▁ag▁with▁want▁directory다니ascriptav,▁git원/▁specific▁or▁my같은합▁pull▁sub디▁project리특▁just를▁does▁a.
변경하고 커밋한 후 다시 밀어넣습니다.
가능해요?

  1. 당신의 레포카피의 맨 위에 cd.
  2. git fetch
  3. git checkout HEAD path/to/your/dir/or/file

    • 치위"path/...(3)은 "를 포함하는 repo 루트 바로 아래의 디렉토리에서 시작합니다..../file"

    • "HEAD" 대신 특정 커밋의 해시 코드를 사용할 수 있습니다. 그러면 해당 커밋에 대한 수정사항(파일) 또는 수정사항(dir)을 얻을 수 있습니다.

빈 디렉터리:

git init
git remote add [REMOTE_NAME] [GIT_URL]
git fetch REMOTE_NAME
git checkout REMOTE_NAME/BRANCH -- path/to/directory

대부분의 답변/기술은 전체 리포지토리의 일부만 보거나 사용하더라도 전체 리포지토리를 다운로드합니다.저는 제가 작업하는 어떤 것들은 제 관심을 끌지 못하는 큰 파일들이 많기 때문에 그것을 좋아하지 않습니다.답을 찾지 않고, 포기하지 않고, 다시 시도하는 등 많은 노력 끝에, 저는 마침내 다른 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 ▁dir ▁to ▁that 다 ▁add ▁to ▁dir ▁one work ), 추 가 ▁just ▁on ▁one ▁wants 한 원그 ▁op.git/info/sparse-checkout위의 단계를 수행할 때.이 솔루션은 원하는 것만 다운로드할 뿐 더 이상 다운로드할 수 없습니다.

@cforbish에게 많은 감사를 드립니다!

디렉토리를 입력하지 않고 최신 변경사항을 가져오려면 다음 작업을 수행합니다.

$ git -C <Path to directory> pull

이 명령어가 도움이 될 수 있습니다.

git archive --remote=MyRemoteGitRepo --format=tar BranchName_or_commit  path/to/your/dir/or/file > files.tar

"에트볼랴

git clone --filter+git sparse-checkout합니다.

pull/fetch에 대해서는 잘 모르겠지만 적어도 초기 클론의 경우 이 옵션이 원격 프로토콜 업데이트와 함께 추가되어 서버에서 객체가 다운로드되는 것을 방지합니다.

디렉토리 " "에만 복제하려면: " " " " 를 사용합니다.small/이 저장소의: https://github.com/cirosantilli/test-git-partial-clone-big-small-no-bigtree 내가 할 수 있는 일:

git clone -n --depth=1 --filter=tree:0 \
  https://github.com/cirosantilli/test-git-partial-clone-big-small-no-bigtree
cd test-git-partial-clone-big-small-no-bigtree
git sparse-checkout set --no-cone small
git checkout

Git 저장소의 하위 디렉터리만 복제하려면 어떻게 해야 합니까?

구간에든되현해엇▁▁for간에▁implement▁it▁is▁likely▁that▁whatever▁very든무에 구현되는 것은 무엇이든 가능성이 매우 높습니다.git clone에는 그지역서또한에또도 있을 입니다.git pull하지만 아직 쉽게 찾을 수가 없었어요.

2021년 1월 git 2.30.0에서 테스트 완료.

그건 불가능해요.모든 리포지토리를 끄거나 필요하지 않습니다.

이것이 효과가 있는지 시도하고 테스트했습니다!

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 허브에서 문서와 예제를 제공하지만 안타깝게도 이 저장소에 있는 많은 주제에 대해 모든 예제 파일을 수집합니다.

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

윈도우즈에서 cmd를 사용하여 해당 디렉토리에서

의 파일 내용

msdn-code-gallery-community-s-zSdkSoapjs\.git\info\sparse-checkout

이라

Sdk.Soap.js/*

드디어 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다

git pull origin master

때로는 어려운 문제를 겪지 않고 이전 파일 복사본을 보고 싶을 수도 있습니다.

이러한 경우 리포지토리의 복제본을 만들고 관심 있는 특정 커밋을 확인하고 해당 복제된 리포지토리의 하위 디렉터리를 확인하는 것도 간단합니다.모든 것이 로컬이기 때문에 완료되면 이 복제본을 삭제할 수 있습니다.

언급URL : https://stackoverflow.com/questions/2425059/how-to-pull-specific-directory-with-git