Git 저장소의 특정 태그를 다운로드하는 방법을 알아 내려고 노력 중입니다. 현재 버전보다 한 버전입니다.
git 웹 페이지에 이전 버전에 대한 태그가 있고 16 진수 숫자의 객체 이름이 있음을 알았습니다.
그러나 버전 이름은 Tagged release 1.1.5
사이트에 따라 ” “입니다.
다음과 같은 명령을 시도했습니다 (이름이 변경됨).
git clone http://git.abc.net/git/abc.git my_abc
그리고 디렉토리, 하위 디렉토리 등을 얻었습니다.
전체 저장소 인 경우 원하는 버전을 얻으려면 어떻게해야합니까? 그렇지 않은 경우 특정 버전을 어떻게 다운로드합니까?
답변
$ git clone
전체 저장소를 제공합니다.
복제 후 태그를 나열한 $ git tag -l
다음 특정 태그를 체크 아웃 할 수 있습니다 .
$ git checkout tags/<tag_name>
더 좋은 방법은 체크 아웃하고 브랜치를 생성하십시오 (그렇지 않으면 수정 번호 태그의 이름을 딴 브랜치에 있음).
$ git checkout tags/<tag_name> -b <branch_name>
답변
git clone --branch my_abc http://git.abc.net/git/abc.git
저장소를 복제하고 관심있는 태그에 남겨 둡니다.
git clone 상태 1.8.0에 대한 설명서 .
–branch는 결과 저장소의 해당 커밋에서 태그를 가져와 HEAD를 분리 할 수도 있습니다.
답변
배포를 위해 주어진 태그 만 체크 아웃하기 위해 다음과 같이 사용합니다.
git clone -b 'v2.0' --single-branch --depth 1 https://github.com/git/git.git
이것은 완전한 저장소가 아닌 최신 코드에만 관심이있는 경우 원격 저장소에서 코드를 체크 아웃하는 가장 빠른 방법 인 것 같습니다. 이런 식으로 ‘svn co’명령과 비슷합니다.
참고 : Git 매뉴얼 에 따라 --depth
플래그를 전달하면 --single-branch
기본적으로 암시 됩니다.
–깊이
지정된 커밋 수만큼 잘라낸 기록을 사용하여 단순 복제본을 만듭니다. –no-single-branch가 모든 브랜치의 팁 근처에서 히스토리를 가져 오기 위해 제공되지 않는 한 –single-branch를 의미합니다. 하위 모듈을 얕게 복제하려면 –shallow-submodules도 전달하십시오.
답변
나는 git 전문가는 아니지만 이것이 효과가 있다고 생각합니다.
git clone http://git.abc.net/git/abc.git
cd abc
git checkout my_abc
또는
git clone http://git.abc.net/git/abc.git
cd abc
git checkout -b new_branch my_abc
두 번째 변형은 태그를 기반으로 새 분기를 설정하므로 ‘분리 된 HEAD’를 피할 수 있습니다. (git-checkout 매뉴얼)
모든 git repo에는 전체 개정 내역이 포함되어 있으므로 repo를 복제하면 최신 커밋과 원하는 태그를 포함하여 이전에 있었던 모든 것에 액세스 할 수 있습니다.
답변
git archive를 사용하여 주어진 태그 또는 커밋 ID에 대한 타르 볼을 다운로드 할 수 있습니다 :
git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar
태그의 zip 아카이브를 내보낼 수도 있습니다.
-
리스트 태그 :
git tag 0.0.1 0.1.0
-
태그 내보내기 :
git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
-
노트:
- 형식을 지정할 필요가 없습니다. 출력 파일 이름으로 선택됩니다.
- 접두사를 지정하면 코드가 디렉토리로 내보내집니다 (후행 슬래시가 포함 된 경우).
답변
--single-branch
스위치를 사용하십시오 (Git 1.7.10부터 사용 가능) . 구문은 다음과 같습니다.
git clone -b <tag_name> --single-branch <repo_url> [<dest_dir>]
예를 들면 다음과 같습니다.
git clone -b 'v1.9.5' --single-branch https://github.com/git/git.git git-1.9.5
이점 : Git은 정확히 동일한 양의 파일을 체크 아웃하는 동안 지정된 브랜치 / 태그에 대해서만 객체를 수신하고 델타를 해결해야합니다! 소스 리포지토리에 따라 많은 디스크 공간이 절약됩니다. (더욱 빠를 것입니다.)
답변
먼저 해당 리모콘의 모든 태그를 가져옵니다.
git fetch <remote> 'refs/tags/*:refs/tags/*'
아니면 그냥 입력
git fetch <remote>
그런 다음 사용 가능한 태그를 확인하십시오.
git tag -l
아래 명령을 사용하여 특정 태그로 전환하십시오.
git checkout tags/<tag_name>
희망이 당신을 도울 것입니다!