Git으로 특정 태그 다운로드 Tagged release 1.1.5사이트에 따라

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 아카이브를 내보낼 수도 있습니다.

  1. 리스트 태그 :

    git tag
    
    0.0.1
    0.1.0
    
  2. 태그 내보내기 :

    git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
    
  3. 노트:

    • 형식을 지정할 필요가 없습니다. 출력 파일 이름으로 선택됩니다.
    • 접두사를 지정하면 코드가 디렉토리로 내보내집니다 (후행 슬래시가 포함 된 경우).

답변

--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>

희망이 당신을 도울 것입니다!