.git 파일이 없는 폴더를 Tar로 만드시겠습니까?

.git 파일이 없는 폴더를 Tar로 만드시겠습니까?

.gitGit 저장소의 폴더를 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.

.gitLinux, 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/

관련 정보