Git 태그는 현재 분기에만 적용됩니까?
현재 여러 개의 분기가 있는 리포지토리에서 작업하고 있습니다.
태그를 만들 때 해당 태그가 당시 분기를 의미합니까?
즉, 다음과 같습니다.태그를 만들 때마다 원하는 분기로 전환하고 해당 분기 내에서 태그가 해당 시점의 분기를 참조하도록 태그를 지정해야 합니까?
Charles B의 답변과 Helmbert의 답변 모두 도움이 되지만, 저는 그것들을 이해하는 데 시간이 걸렸습니다.다음은 다른 방법입니다.
- 태그는 커밋에 대한 포인터이며 커밋은 분기와 독립적으로 존재합니다.
- 태그는 분기와 직접적인 관계가 없으며 커밋만 식별합니다.
- 이 커밋은 임의의 분기에서 지정할 수 있습니다. 즉, 임의의 분기 기록의 일부가 될 수 있습니다.
- 그므로, 달기리를 합니다.
git show <tag>
태그의 세부 정보를 보려면 태그가 가리키는 커밋의 ID만 포함하고 분기에 대한 참조는 포함하지 않습니다.- (커밋 ID(예: 객체 이름 또는 SHA-1 ID)는 커밋 내용에 대한 해시인 16진수로 구성된 40자 문자열입니다. 예:
6f6b5997506d48fc6267b0b60c3f0261b6afe7a2
)
- (커밋 ID(예: 객체 이름 또는 SHA-1 ID)는 커밋 내용에 대한 해시인 16진수로 구성된 40자 문자열입니다. 예:
- 태그는 분기와 직접적인 관계가 없으며 커밋만 식별합니다.
- 분기는 간접적으로만 작동합니다.
- 태그를 생성할 때 태그가 가리키는 커밋을 암시함으로써 다음을 수행합니다.
- 태그에 대한 대상을 지정하지 않으면 기본적으로 현재 분기의 가장 최근 커밋(HEAD)이 사용됩니다. 예:
git tag v0.1.0 # tags HEAD of *current* branch
- 분기 이름을 태그 대상으로 지정하면 해당 분기의 가장 최근 커밋이 기본값으로 지정됩니다. 예:
git tag v0.1.0 develop # tags HEAD of 'develop' branch
- 다른 사용자가 지적했듯이 커밋 ID를 태그의 대상으로 명시적으로 지정할 수도 있습니다.
- 태그에 대한 대상을 지정하지 않으면 기본적으로 현재 분기의 가장 최근 커밋(HEAD)이 사용됩니다. 예:
- 을 할 때
git describe
현재 분기를 설명합니다.git describe [--tags]
에서는 이 분기의 기록에서 가장 최근의 [최신 경량] 태그 이후의 커밋을 기준으로 현재 분기를 설명합니다.- 따라서 에 의해 참조된 태그는 가장 최근에 만든 태그를 전체적으로 반영하지 못할 수 있습니다.
- 태그를 생성할 때 태그가 가리키는 커밋을 암시함으로써 다음을 수행합니다.
예를 들어 태그를 생성하는 경우.
git tag v1.0
태그는 현재 사용 중인 분기의 가장 최근 커밋을 나타냅니다.분기를 변경하고 해당 분기에 태그를 생성할 수 있습니다.
태그를 지정하면서 다른 브랜치를 참조할 수도 있습니다.
git tag v1.0 name_of_other_branch
그러면 다른 분기의 가장 최근 커밋에 대한 태그가 생성됩니다.
또는 어떤 분기든 상관없이 일부 커밋의 SHA1을 직접 참조하여 태그를 어디에나 둘 수 있습니다.
git tag v1.0 <sha1>
태그는 특정 커밋을 참조하고 분기는 기록의 마지막 커밋에 대한 이동 참조이므로 태그와 분기는 전혀 관련이 없습니다.나뭇가지는 가고, 꼬리표는 남습니다.
따라서 커밋에 태그를 지정할 때 Git은 태그를 지정할 SHA1을 제공하면 어떤 커밋 또는 브랜치가 체크아웃되었는지 상관하지 않습니다.
분기를 참조하여 태그를 지정할 수도 있습니다(그 후 분기의 끝에 태그를 지정함). 나중에 분기의 팁이 다른 곳에 있다고 말할 수도 있습니다(와 함께).git reset --hard
예를 들어) 또는 분기를 삭제합니다.하지만 내가 만든 태그는 움직이지 않습니다.
방금 전화했을 때git tag <TAGNAME>
추가 매개 변수 없이 Git는 현재 HEAD(즉, 현재 분기의 HEAD)에서 새 태그를 생성합니다.이 분기에 커밋을 추가할 때 분기 HEAD는 해당 새 커밋을 계속 처리하지만 태그는 항상 동일한 커밋을 참조합니다.
전화할 때git tag <TAGNAME> <COMMIT>
태그 생성에 사용할 커밋을 지정할 수도 있습니다.
그럼에도 불구하고 태그는 여전히 특정 커밋(분기가 아닌)에 대한 "포인터"에 불과합니다.
과거 커밋에 대한 태그를 만들 수 있습니다.
git tag [tag_name] [reference_of_commit]
예:
git tag v1.0 5fcdb03
현재 분기에 태그를 지정하려면 다음을 입력합니다.
git tag <tag>
다음을 사용하여 분기를 누릅니다.
git push origin --tags
분기에서 태그를 생성하려면 다음과 같이 하십시오.release/yourbranch
등 그렇다면 당신은 다음과 같은 것을 사용해야 합니다.
git tag YOUR_TAG_VERSION_OR_NAME origin/release/yourbranch
적절한 태그를 만든 후 태그를 원격으로 푸시하려면 다음 명령을 사용합니다.
git push origin YOUR_TAG_VERSION_OR_NAME
관련되고 유용한 명령은 다음과 같습니다.
git branch --contains tag/<tag>
제공된 태그가 있는 모든 분기 목록을 제공합니다.
언급URL : https://stackoverflow.com/questions/14613540/do-git-tags-only-apply-to-the-current-branch
'programing' 카테고리의 다른 글
Visual Studio 2013에서 GitHub에 기존 솔루션을 추가하는 방법 (0) | 2023.07.12 |
---|---|
NestJS 모듈에서 구성 서비스를 사용하는 모범 사례 (0) | 2023.07.12 |
도커별 워드프레스 프로젝트에서 컨테이너 디렉토리 /var/www/html을 다른 경로로 변경하는 방법은 무엇입니까? (0) | 2023.07.12 |
목록 요소가 있는지 테스트하는 방법은 무엇입니까? (0) | 2023.07.12 |
동면.최대 절전 모드 버전을 4.2.0으로 업그레이드하면 INTEGER를 사용할 수 없습니다.CR1 (0) | 2023.07.12 |