Git 프로젝트 내보내기

John Wachira 2022년7월12일
Git 프로젝트 내보내기

이 기사에서는 Git에서 프로젝트 내보내기에 대해 설명합니다. git archive 명령을 사용하여 Git 저장소의 아카이브 파일을 생성합니다.

이러한 파일은 여러 파일을 하나로 결합합니다. 아카이브 파일을 사용하면 개발자 간에 쉽게 공유하거나 장기간 보관할 수 있습니다.

git archive 명령

그것은 무엇을합니까?

git archive 명령을 사용하여 커밋, 분기 및 트리와 같은 지정된 참조에 대한 아카이브 파일을 생성합니다. 명령을 다른 인수와 함께 사용하여 아래와 같이 출력을 변경할 수 있습니다.

Git 내보내기 예제

기본적인 git archive 명령부터 시작하겠습니다.

$ git archive --format=tar HEAD

터미널에서 이 명령을 실행하면 저장소의 HEAD에서 아카이브 파일이 생성됩니다. 아카이브는 임시 stdout 스트림으로 이동합니다.

아래와 같이 영구 파일을 지정할 수 있습니다.

$ git archive --output=./sample_repo_archive.tar --format=tar HEAD

위의 명령을 실행하면 HEAD 참조에 대한 아카이브 파일이 생성되어 sample_repo_archive.tar 파일에 저장됩니다. --format=tar 옵션은 압축되지 않은 아카이브 출력을 만들도록 Git에 지시합니다.

ziptar.gz와 같은 다른 인기 있는 형식을 형식 옵션에 전달할 수 있습니다. format 옵션을 포함하지 않으면 Git은 지정된 --output 옵션을 수행합니다.

$ git archive --output=./sample_repo_archive.tar.gz --format=tar HEAD ./Updates

Git을 사용하면 저장소의 일부를 보관할 수도 있습니다. 위의 명령은 저장소의 /.Updates 디렉토리에 파일에 대한 아카이브 파일을 생성합니다.

Git 아카이브 사용 옵션

위의 예는 가장 자주 사용되는 git archive 옵션에 대한 기본 아이디어를 제공합니다. 출력을 추가로 변경하기 위해 명령에 전달할 수 있는 또 다른 옵션을 살펴보겠습니다.

--prefix=<prefix>/

우리는 prefix 인수를 사용하여 아카이브의 모든 파일에 대한 경로를 첨부하여 쉽게 추출할 수 있습니다.

--remote=<repo>

이것은 원격 저장소의 아카이브를 생성하려는 시나리오에서 실행되는 명령입니다. 명령을 실행할 때 원격 저장소의 URL을 포함해야 합니다.

이 명령을 사용하면 원격 저장소에서 ref를 가리킬 수도 있습니다.

명령 구성

git archive 명령은 다음 구성 옵션을 따릅니다.

$ git config --global tar.umask

unmask 구성을 사용하여 아카이브 파일에 Unix 수준 권한 비트 제한을 지정합니다.

tar.<format>.command

위의 옵션을 사용하여 git archive 출력을 실행할 사용자 지정 셸 명령을 만듭니다. stdout 스트림을 사용자 정의 도구에 파이프하고 --output 옵션을 생략하는 것과 같습니다.

이 작업의 기본 개념은 고정된 맞춤형 아카이브 사후 처리 도구를 만드는 것입니다.

tar.<format>.remote

원격 개발자가 지정된 형식의 아카이브를 가져올 수 있도록 위의 옵션을 활성화할 수 있습니다.

간단히 말해서, git archive 명령을 사용하여 Git 리포지토리의 배포 가능한 패키지를 생성합니다. 이 명령을 사용하여 특정 트리, 분기 또는 커밋을 대상으로 지정할 수 있습니다.

또한 추가 압축을 위한 여러 출력 형식이 있습니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn