git tag 명령어 정리


  • git tag 명령어에 대해서 정리한 글입니다

git tag

  • git 히스토리에 커밋들이 점점 더 많아져서 git log가 굉장히 길어지면 어떤 특정한 부분으로 돌아가고 싶을 때 어려울 수 있다

  • 이 때 특정한 커밋을 북마크 해둠으로써, 내가 원하는 부분으로 빠르게 돌아갈 수 있는 방법이 바로 git tag이다

  • 원하는 문자열을 사용해서 태그를 이용해도 되지만 대부분은 제품을 릴리즈 할 때 그 버전을 tag로 해놓는다

  • 이처럼 길다란 버전 히스토리에 특정한 tag를 해둠으로써 언제 릴리즈 버전이 되었는지 tag별로 관리를 쉽게 할 수 있고 또한 해당 버전으로 빠르게 전환할 수 있다.

  • 즉 tag는 유용한 북마크 같은 역할을 하는 것으로 브랜치 처럼 커밋을 가리키는 가벼운 포인터이다

  • 보통은 릴리즈버전을 사용할 때 다양한 규칙들이 있을 수 있지만 대부분 semantic versioning 시스템을 따라간다

  • 숫자 세가지를 이용해서 메이저(major) 버전, 마이너(minor) 업데이트, 픽스(fix) 버전을 구분해서 정한다

  • v2.0.0

    • 제일 앞의 메이저 버전은 어떤 특정한 기능이 추가되었을 때, 정말 전체적인 업데이트가 발생했을 때 올라가는 버전으로 사람들이 크게 느낄 변화를 적용하는 경우 (v2.x → v3.x)

    • 마이너 버전은 커다란 기능 중에서 작은 기능들이 업데이트 되거나 개선이 되었을 때, 즉, 작은 변화 등이 있을 때 올라가는 경우(v.2.3 → v.2.4)

    • fix는 기존에 존재하는 기능에서 오류수정을 하거나 성긍이 개선되었을 때 어베이트 한다

    • 프로그램을 출시하는 것을 릴리즈(release)라고 하는데 태그를 붙여서 릴리즈한다

    • 태그도 브랜치처럼 푸시를 해주어야 원격저장소에서도 볼 수 있다

  • 배포 버전에 태그를 추가해서 배포할 수 있다

    • 태그에는 주석이 있는 태그와 간단한 태그 두 종류가 있다

    • 태그는 차후에 커밋을 식별할 수 있는 유용한 정보

    • 태그를 사용해서 원격 저장소에 push 하면 GitHub 원격저장소 , [Release] 탭에서 확인할 수 있다


git tag -a -m <간단한 메시지> <태그 이름> [브랜치 또는 체크섬]
# -a로 주석있는(annotated) 태그를 생성한다
# 메시지와 태그 이름은 필수이며 브랜치 이름을 생략하면 HEAD에 태그를 생성한다

git push <원격 저장소 별명> <태그 이름>
# 원격 저장소에 태그르 업로드 한다

$ git log --oneline
# 로그 확인

$ git log -a -m "첫 번째 태그 생성" v0.1

$ git log --oneline
# 태그  생성 확인

$ git push origin v0.1
# 태그 푸시

$ git tag "tagname"
# 현재 커밋에 tag를 붙일 수 있다

$ git tag "tagname" "커밋 hashcode"
# 특정한 커밋에 tag를 붙일 수 있다

$ git tag v1.0.0 "커밋 hashcode"
$ git tag v2.0.0 "커밋 hashcode"
# 이런식으로 버전을 나타낼 수도 있다
# 이렇게 tag를 달아둠으로써 특정한 포인트를 기억하기 쉽고 시각적으로도 쉽게 확인할 수 있다


$ git tag v1.0.1 "hashocode" -a -m "Release에 대한 정보 "
# tag와 관련된 릴리즈 정보를 포함하고 싶은 경우
# 즉, 이 버전에는 어떠한 기능들이 포함되어 있는지 상세하게 작성하고 싶은 경우
# -a는 annotate의 약자, 내가 이 태그에 조금 더 정보를 추가하겠다라고 명시해준 다음
# -m 옵션을 사용해서 메시지를 추가해준다



$ git show v1.0.1
# 위의 방식으로 메시지 작성한 다음 git log 사용해도 tag의 이름만 나오고 추가한 정보 나오지 않는데
# show 명령어와 tag 이름을 작성하면 내용을 볼 수 있다


$ git tag
# 만들어진 tag 목록을 확인할 수 있다

$ git tag -l "v1.0.*"
# tag 중에 특정한 문자열이 있는 tag만 검색하고 싶은 경우 와일드 카드 사용해서 검색할 수 있다
# v1.0이 포함된 모든 태그 출력 된다(ex.v1.0.1, v1.0.2)

$ git tag -d v1.0.0
# 태그 삭제

$ git checkout v2.0.0
# checkout 명령어 사용하면 특정한 태그로 이동할 수 있다

$ tig
# HEAD가 어떤 태그를 가리키고 있는지 확인할 수 있다


$ git checkout -b testing v2.0.0
# tag를 체크아웃 하면서 새로운 브랜치를 만들고 싶은 경우

$ tig
# testing이라는 브랜치가 버전 2.0.0에서 만들어진 것을 확인할 수 있다


$ git push origin v1.0.0
# 내가 만든 태그를 서버에 업로드 해두고 싶다면
# 해당하는 태그를 작성

$ git push origin --tags
# 모든 태그를 업로드하고 싶은 경우

$ git push origin --delete v1.0.0
# 특정 태그 삭제

  • tig

    • terminal에서 사용할 수 있는 인터페이스를 제공하는 프로그램
    
    $ tig
    # history 확이날 수 있다
    # 커밋 에서 enter 치면 커밋 안에 있는 커밋 타이틀, description, 수정된 파일등과 같은 내용 확인할 수 있다
    # g와 같은 명령어 사용해서 grab을 사용하거나 /를 이용해서 문자열 검색을 할 수 있다
    # 이 외에도 다양한 명령어를 사용할 수 있다
    
    
    








© 2020. by dkmqflx

Powered by dkmqflx