학습 사이트의 아래 레벨에서 다루는 내용이다.
level mixed<num>
※ Advanced Topics 의 내용은 본글에서 다루지 않지만, 앞에서 배운 내용들을 가지고 풀 수 있는 레벨들이다.
level advanced<num>
git tag
는 Git에서 특정 커밋에 이름을 붙여 버전이나 릴리스를 식별할 수 있게 해주는 기능이다. 태그는 주로 소프트웨어의 특정 릴리스 지점을 표시하는 데 사용되며, 일반적으로 변경 로그를 관리하거나 배포를 위해 커밋을 추적하는 데 유용하다.
// 1. 경량 태그 생성
git tag <tag_name>
// 2. 주석 태그 생성
git tag -a <tag_name>
// 3. 특정 커밋에 태그 추가
git tag (-a) <tag_name> <commit_hash>
// 4. 태그 목록 확인
git tag
// 5. 태그 삭제
git tag -d <tag_name>
// 커밋 해시가 아니라 태그 이름이 기준인 것에 주목
// 각 태그 이름은 고유해야 하며 두 개 이상의 커밋에 같은 이름을 붙일 수 없다.
// 6. 태그 푸시
git push origin <tag_name>
git describe
는 앞뒤로 많은 커밋을 이동했을 때 갈피를 잡게 도와주는 명령어이다. (상황 예시: git bisect (debugging search)를 마친 후, 막 휴가에서 돌아온 동료의 컴퓨터에 앉았을 때)
git describe
는 최신 태그를 기준으로 커밋의 거리와 커밋 해시의 일부를 조합해 결과를 보여준다.// 기본 명령어
git describe <ref>
// <ref>에 아무런 값도 넣지 않으면 HEAD를 기준으로 결과를 반환한다.
// 결과 형식
<tag_name>-<number_of_commits>-g<commit_hash>
--tags
: 태그가 없는 경우에도 태그를 찾도록 지시한다.git describe
는 기본적으로 주석 태그(annotated tag)만 찾는다.git describe --tags
--long
: 항상 긴 형식의 결과를 보여준다.git describe --long
--always
: 태그가 없는 경우데 커밋 해시를 반환한다.git describe --always