Git 태그는 현재 브랜치에만 적용됩니까?
현재 여러 지점이있는 저장소를 사용하고 있습니다.
태그를 만들 때 해당 태그는 당시의 분기를 참조합니까?
다시 말해 : 태그를 만들 때마다 해당 지점에서 원하는 지점으로 전환하고 해당 지점에서 태그를 지정하여 해당 지점에서 해당 지점을 참조해야합니까?
예를 들어 태그를 생성하면
git tag v1.0
태그는 현재 사용중인 지점의 가장 최근 커밋을 나타냅니다. 지점을 변경하고 거기에 태그를 만들 수 있습니다.
태그를 지정하는 동안 다른 지점을 참조 할 수도 있습니다.
git tag v1.0 name_of_other_branch
다른 분기의 가장 최근 커밋에 대한 태그를 만듭니다.
또는 어떤 커밋의 SHA1을 직접 참조하여 어느 브랜치에 관계없이 태그를 어디에나 배치 할 수 있습니다.
git tag v1.0 <sha1>
CharlesB의 답변 과 helmbert의 답변 은 모두 도움이되지만 이해하는 데 시간이 걸렸습니다. 그것을 넣는 또 다른 방법이 있습니다.
- 태그 A는 커밋에 대한 포인터 , 그리고 커밋은 가지 독립적으로 존재한다 .
- 이해하는 것이 중요하다 태그에는없는 직접 지점과의 관계를 - 그들은 단지 이제까지 식별 커밋 .
- 이 커밋은 여러 가지 지점에서 지적 될 수 있습니다. 즉, 아무 것도 포함하지 않고 여러 가지 기록의 일부가 될 수 있습니다.
- 따라서
git show <tag>
태그의 세부 사항을보기 위해 실행 하면 분기에 대한 참조가없고 태그가 가리키는 커밋의 ID 만 포함됩니다.- (40 문자열 16 진수로 구성되는) 객체 이름 또는 SHA-1 아이디 일명 ID를 (커밋 내용을 통해 해시가 커밋 숫자, 예를 :.
6f6b5997506d48fc6267b0b60c3f0261b6afe7a2
)
- (40 문자열 16 진수로 구성되는) 객체 이름 또는 SHA-1 아이디 일명 ID를 (커밋 내용을 통해 해시가 커밋 숫자, 예를 :.
- 이해하는 것이 중요하다 태그에는없는 직접 지점과의 관계를 - 그들은 단지 이제까지 식별 커밋 .
- 지점은 간접적으로 만 작동합니다 .
- 당시 만드는 태그를 하여 을 의미 커밋 태그가 가리키는 것입니다 :
- 태그에 대상을 지정하지 않으면 기본값은 현재 분기의 최신 커밋 (일명 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 describe
는 가장 최근에 생성 된 태그 전체를 반영하지 않을 수 있습니다 .
- 당시 만드는 태그를 하여 을 의미 커밋 태그가 가리키는 것입니다 :
태그는 특정 커밋을 참조하고 브랜치는 기록의 마지막 커밋에 대한 이동 참조이므로 태그와 브랜치는 완전히 관련이 없습니다. 지점은 가고 태그는 유지됩니다.
따라서 커밋에 태그를 지정할 때 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
참고 URL : https://stackoverflow.com/questions/14613540/do-git-tags-only-apply-to-the-current-branch
'development' 카테고리의 다른 글
socket.io에서 클라이언트의 IP 주소를 가져옵니다 (0) | 2020.07.06 |
---|---|
len (generator ())하는 방법 (0) | 2020.07.06 |
Visual Studio 2017 : 표시 방법 참조 (0) | 2020.07.06 |
Intellij에서 중복 코드 감지를 비활성화 할 수 있습니까? (0) | 2020.07.06 |
유닉스 타임 스탬프 형식으로 현재 GMT 시간을 얻는 가장 쉬운 방법은 무엇입니까? (0) | 2020.07.06 |