당신이 정말로 요구하는지하여 원격으로 자신의 작업 트리 (또는 로컬 저장소의 복제를)하지 않고, 자식 저장소에서 파일을 잡아 것입니다 가정, 당신이 할 수 있습니다 :
git archive --format=tgz --remote=<url-to-repo> master -- myfolder | tar zxvf -
은 <url-to-repo>
에 저장되지만 myfolder
아래의 내용 만 포함하는 저장소의 master 브랜치의 gzipped 타르볼을 만드는 것이라고합니다. 배관을 tar
통해 수행하면 데이터가 보관 취소되고 현재 작업 디렉토리에 저장됩니다.
실제로 작업중인 트리를 관리하고 다른 두 개발자 인 과 함께 작업하려는 경우 실제로 수행해야하는 작업은 도구에 위배됩니다. 그러나 누군가가 좋은 워크 플로 제안을하기 위해 수행하려는 작업에 대해 훨씬 더 정교해야합니다.
업데이트 :
관리되는 작업 트리에서 한 폴더의 변화를 가져 오려는 것처럼 그래서 소리 않습니다. 미안하지만, 힘내는 그런 식으로 작동하지 않습니다. 내가 아래에있는 코멘트에서 말했듯이, Git은 파일 트리를 관리합니다. 그것은 하나의 개정에있을 수있는 트리의 일부를 허용하지 않으며, 다른 부분은 당신이 제안하고 같은 다른 버전에로 - 아마 당신은이 가능했던 서브 버전의 이전 사용자입니까?
당신은 당신이 원하는 유사한 효과를 얻을 수 있지만 작업 카피를 수정해야합니다. 난 당신의 개발자 중 하나를 삭제하려는 경우가 아니면 커밋을하지 않을 것입니다.
$ git fetch
$ git checkout @{u} -- myfolder
git fetch
는 최신 원격 참조를 가져올 것 - 그것은 서버에서 최신 정보를 가져옵니다 :이 위해 할 수있는. git checkout @{u} -- myfolder
은 myfolder
을 추적 분기에있는 것과 같이 보입니다. 것으로 표시됩니다
로컬 분기에 모든 변경 사항이없는 (그리고 그 괜찮아 있도록 이 그들을 원하지 않았다), 및
myfolder
이 두 결과가 myfolder
의 내용에 이 원격 저장소에서 사용 가능한 최신으로 업데이트되었으므로 수정되었지만 현재 개정판과 같지 않은 입니다.
가 다시 정상으로 작업 사본을 얻으려면 다음을 수행하십시오 거기에서
$ git checkout -- myfolder
을, 당신은 가능성 (원격으로 최신 지사 를 얻기 위해 평소 메커니즘에 따라 전화 git pull
).
그러나 이것은 사용자가 원하는 방식이 아닙니다. 귀하의 의견에도 불구하고 "사용 사례와 관련 없음", 정말 중요합니다. 전반적인 목표를 달성하고 개발을 관리하는 데 더 나은 방법이 종종 있습니다. 그러나 에는 수행하려는 작업을 이해해야합니다. 현재로서는 이 제안하는 것은 힘내게하는 방법에 대해 정말로 반대한다.
그래서 몇 가지를 알려 드리겠습니다. 연구는 토픽 브랜치를 사용하여 트리의 각 개발자에 대해 폴더를 사용하는 대신 개발 작업을 관리하는 방법으로 을 사용합니다. 브랜치 에서 명확하고 논리적 인 변경이 가능하며, 프로덕션에 포함되도록 테스트하고 승인 할 때 병합됩니다.
시작할 수있는 좋은 장소는 here입니다. 상당량의 정보가 포함되어 있으며, 일부는 개의 여러 가지 스타일의 Git 워크 플로 링크로 연결됩니다. 끝내려는 장소는 입니다. 실제로 다른 사용자가 수행하고있는 작업을 손상시키지 않고 실제로 프로덕션에 넣은 버전을 나타내는 커밋이 있습니다. 이상적으로, 은 의미있는 방식으로 프로덕션으로 푸시 된 것을 태그링합니다.
나는 아무도 듣고 싶지 않지만 훈련은 귀하의 경우에 매우 도움이 될 수 있음을 알고 있습니다. GitHub는 free online classes 과 기타 여러 가지 리소스를 제공합니다. 경험에 비추어 볼 때, 힘내는 사람이 어떻게 작동하고 그것이 해결하는 문제를 파악하면 더 나은 워크 플로우가 완성됩니다.
귀하의 질문은 매우 명확하지 않다 . 'dev1','dev2','production' 폴더를 가지고 있다고합시다. 다른 지점에서'production'의 모든 변경 사항을 가져 오는 방법을 묻는 중이거나'production '내용을 dev 폴더 중 하나에 설정하는 방법을 묻는 중입니까? 어느 쪽이든, 당신이 접근하는 방식은 도구에 대한 당신의 작업처럼 들립니다. – jszakmeister
좋아요, 다시 말하면 ... 프로젝트에 하나의 프로젝트, 두 개의 개발자와 두 개의 폴더가 있습니다. 각 개발자는 하나의 폴더에서 작동합니다. 둘 다 변경하고 지점으로 밀어 넣습니다. 로컬 컴퓨터에 하나의 폴더 만 변경하려고합니다. – fredy
Git을 사용하여 작업 복사본을 관리하고 있습니까? 또는 저장소에있는 폴더의 내용을 컴퓨터로 가져 오려고하십니까? PherricOxide에 대한 귀하의 의견으로 판단하면 후자와 같습니다. – jszakmeister