.git 디렉토리가없는 Git 복제 수행 할 때 전달할 플래그가 .git있습니까

git복제를 수행 할 때 전달할 플래그가 .git있습니까 (예 : 디렉토리를 복제하지 마십시오) ? 그렇지 않은 경우 .git복제 후 디렉토리 를 삭제하는 플래그 는 어떻습니까?



답변

사용하다

git clone --depth=1 --branch=master git://someserver/somerepo dirformynewrepo
rm -rf ./dirformynewrepo/.git
  • 깊이 옵션을 사용하면 해당 리포지토리를 얻을 수있는 최소 기록을 복사해야합니다.
  • 분기 옵션은 선택 사항이며 지정하지 않으면 마스터가됩니다.
  • 두 번째 줄은 dirformynewrepo더 이상 Git 저장소가 아닌 디렉토리를 만듭니다 .
  • 재귀 하위 모듈 복제를 수행하는 경우 깊이 및 분기 매개 변수가 하위 모듈에 적용되지 않습니다.

답변

파일 만 원하므로 파일을 git repo로 취급하지 않아도됩니다.

rsync -rlp --exclude '.git' user@host:path/to/git/repo/ .

이것은 로컬 경로 및 원격 ssh / rsync 경로에서만 작동하며 원격 서버가 git : // 또는 https : // 액세스 만 제공하는 경우 작동하지 않을 수 있습니다.


답변

또는 Node.js가 설치되어 있으면 다음 명령을 사용할 수 있습니다.

npx degit GIT_REPO

npx노드와 함께 제공되며 이진 노드 기반 패키지를 먼저 설치하지 않고 실행할 수 있습니다 (또는 degit먼저을 사용하여 전역으로 설치할 수 있음 npm i -g degit).

DegitSvelte and Rollup을 만든 Rich Harris가 만든 도구로, git 폴더를 유지하지 않고 리포지토리를 복제하여 새 프로젝트를 빠르게 만드는 데 사용합니다. 그러나 그것은 또한 어떤 repo를 한 번 복제하는데 사용될 수 있습니다 …


답변

당신은 항상 할 수 있습니다

git clone git://repo.org/fossproject.git && rm -rf fossproject/.git