.git
Git 저장소의 폴더를 tar하는 경우 관련 파일을 포함하지 않고 이 작업을 수행할 수 있습니까 ? 그렇지 않다면 명령을 통해 어떻게 이 작업을 수행할 수 있습니까?
답변1
가장 간단한 대답은 add 입니다 --exclude-vcs
. 이는 모든 버전 제어 시스템 디렉터리를 제외합니다.
개인적으로 사용하고 있어요
tar --exclude-vcs -zcvf foo.tar.gz ./FOLDER_NAME
--exclude-vcs
따라서 명령 끝에 추가하기 만 하면 됩니다 .
답변2
살펴보시 git help archive
거나 git archive --help
. 이 git
하위 명령을 사용 archive
하면 에서 추적하는 파일만 포함하는 아카이브를 만들 수 있습니다 git
. 이것이 당신이 찾고 있는 것일 수도 있습니다.
매뉴얼 끝에 나열된 많은 예 중 하나:
git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz
현재 버전은 git
다음 형식의 아카이브 생성을 지원합니다.
tar
tar.gz
또는tgz
zip
git archive --list
시스템에서 지원하는 형식 목록은 리소스를 참조하세요 .
답변3
아카이브에 git이 추적하는 파일은 포함하고 git 저장소 자체나 생성되거나 추적되지 않는 파일은 포함하지 않으려면 다음을 수행하세요.사용git archive
.
.git
Linux, FreeBSD, OSX 또는 Cygwin에서 특별히 제외하고 다른 모든 것을 포함하려는 경우 tar에는 디렉토리를 제외하는 간단한 옵션이 있습니다.
tar -c --exclude .git -f - foo | gzip >foo.tgz
GNU tar(예: Linux 또는 Cygwin에서)를 사용하면 이를 tar czf foo.tgz --exclude .git foo
.
아카이브를 생성하는 POSIX 방식은 다음과 같습니다.pax
.
pax -w -t -s '!.*/\.git$!!' -s '!.*/\.git/.*!!' foo | gzip >foo.tgz
답변4
나에게 도움이 된 유일한 방법은 필요한 파일을 다른 서버, 즉 이 서버로 전송하기 위해 .git 디렉터리(및 백업이라는 다른 디렉터리)를 제외하는 것이었습니다. Giles의 답변은 이 솔루션을 찾는 데 도움이 되었습니다.
tar --exclude .git --exclude backups -czvf project1.tar.gz /var/www/html/project1/