Git/[인강] Git & Github 실무 활용 완벽 가이드

[Git & Github] 17. 히스토리상의 중요한 순간에 표시하기

pakms980319 2025. 5. 2. 10:56
Important

    ● git tag 이해하기
    ● 태그 보기
    ● 태그 생성 및 푸시



Nice To Have

    ● Semantic versioning
    ● 태그 비교/삭제/옮기기

 

깃 태그는 특정 커밋에 추가하는 일종의 라벨이다. 주로 릴리즈 버전을 표시하는 용도로 사용된다.

커밋이 추가되면 같이 이동하는 브랜치 참조와 다르게 처음 지정된 커밋을 계속 참조한다.

 

 

* 태그의 두 종류 *

일반 태그(lightweight) : 특정 순간에 이름을 붙인다.

주석 태그(annotated) : 태그 메시지, 생성자 이름, 이메일, 날짜 등을 포함한다.

 

큰 프로젝트에서는 주석 태그를 선호하는 편이다.

 

시멘틱 버저닝 (Semantic versioning)
버전 번호를 매기는 일종의 규칙이다.
버전명은 숫자 세 개와 숫자 사이 점으로 구성된다. 2.4.1 같은 형태이다.
순서대로 메이저 릴리즈, 마이너 릴리즈, 패치 릴리즈이다.

패치 : 신규 기능이나 의미 있는 변경사항을 수반하지 않는다. 단순한 버그 수정이나 아주 미미한 수정사항만 포함된다.
마이너 : 신기능이 추가됐을 때 배포되며 하위 호환성이 유지된다. 반드시 신기능이 추가되는 것은 아니지만 추가된 것으로 인해 사용자의 이용 경험이 바뀌지 않으면 마이너 릴리즈로 배포된다.
메이저 : 하위 호환성이 보장되지 않을 때, 기능 삭제 또는 큰 변화가 있을 때 배포된다. 사용자의 이용 경험이 달라질 수 있다.

 


git tag :
현재 저장소의 모든 태그를 조회한다.
git tag <tagname> : HEAD가 가리키는 커밋에 일반 태그를 생성한다.
git tag -a <tagname> : HEAD가 가리키는 커밋에 주석 태그를 생성한다.
git tag <tagname> <commit-hash> : commit-hash가 가리키는 커밋에 태그를 생성한다.
git tag -l "*beta*" : beta라는 글자가 포함된 태그를 모두 조회한다. 만약 "beta*"인 경우에는 beta로 시작하는 태그를 검색한다. "*beta"는 beta로 끝나는 태그를 검색한다.
git tag -f <tagname> <commit-hash> : 태그를 이동시킨다.
git tag -d : 태그를 삭제한다.


git checkout <tag>
태그를 체크아웃한다. 브랜치 체크아웃과 다른점은 브랜치가 아닌 특정 커밋을 가리킨다는 점이다.


git diff <tag1>..<tag2>
두 태그를 비교한다. 예전에 두 커밋을 비교했던 것과 완전히 동일하다.


git show <tagname>
태그 정보를 조회한다.

 

태그는 고유한 값이어야만 하기 때문에 중복 부여가 불가능하다.

 

커밋을 원격 저장소로 푸시한다고 해서 태그도 같이 푸시되는 것은 아니다.

태그는 별도로 푸시 해주어야 한다.

git push --tags  # 모든 태그를 푸시
git push origin <tagname>  # 특정 태그만 푸시

 


참고

1) https://www.udemy.com/course/best-git-github

2) https://erikanes.tistory.com/380

 

[Git & Github] 17. Git tag: 히스토리상의 중요한 순간에 표시하기

Important git tag 이해하기 태그 보기 태그 생성 및 푸시 Nice To Have Semantic versioning 태그 비교/삭제/옮기기 깃 태그는 특정 커밋에 추가하는 일종의 라벨이다. 주로 릴리즈 버전을 표시하는 용도로 사

erikanes.tistory.com

3) https://velog.io/@southernlight/Section-17-Git-tag-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%83%81%EC%9D%98-%EC%A4%91%EC%9A%94%ED%95%9C-%EC%88%9C%EA%B0%84%EC%97%90-%ED%91%9C%EC%8B%9C%ED%95%98%EA%B8%B0

 

Section 17: Git tag: 히스토리상의 중요한 순간에 표시하기

특정 커밋에 추가하는 일종의 라벨이다. 주로 프로젝트 릴리스를 표시하는 용도로 사용된다. 태그는 시간의 어떤 지점을 가리키는 라벨과 비슷하다. 브랜치 레퍼런스는 커밋이 추가되면 가리키

velog.io