DevOps/Git

[git] git tag 기능에 대해 알아보자

SeungbeomKim 2024. 2. 14. 17:53
반응형

git-tag-image


tag가 뭔지에 대해 간략하게 설명드리겠습니다.

 

tag

  • 프로젝트에서 중요한 시점들을 기록해 두는 방법
  • 주로 release(새로운 버전 출시)를 위해 사용되는 키워드입니다
  • tag를 만드는 시점이 어떤 version을 release하는 시점입니다

 

tag의 종류

  1. lightweight tag: commit id만을 보존하는 태그
  2. annotated tag: tag를 만든 사람의 이름, 이메일, 날짜, 메세지 등을 저장

 

주요 명령어

  • git tag: tag 리스트를 보여줌
  • git tag -l ‘v1.4.2.*’: ‘v.1.4.2’로 시작하는 태그들의 리스트를 반환
  • git tag v1.1: 현재의 HEAD 태그를 v1.1로 저장
  • git tag v1.2 9fceb02: 커밋 아이디 9fceb02를 v1.2 태그로 지정
  • git tag -a v1.2: annotated tag로 v1.2 태그를 생성
  • git tag -a v1.2 -m “상세한 설명” : 태그에 대한 설명 명시
  • git show v1.2: v1.2 태그에 대한 상세한 정보 열람
  • git tag -v “tag name”: 태그를 만든 사람 및 설명도 볼 수 있습니다
  • git tag -d v1.2: 특정 태그 삭제
  • v1.0.1-rc(release candidate의 약자, 릴리즈 후보)
  • git push origin v1.5: git은 태그를 push할 때 자동으로 리모트로 저장되지 않기에 tag명을 명시해야 합니다.
  • git push origin —tags: 모든 태그를 원격저장소에 반영함 (v1.0 (local) → v1.0(remote))

 tag 사용 예시

 

다음과 같이 해당 파일을 커밋하고 tag를 생성해줍니다. 생성해 준 태그를 원격에 반영(git push origin v1.0.2)하면, 다른 팀원들이 해당 태그를 가져올 수 있게 됩니다.

 

다른 팀원이 지정한 tag를 끌고 올 경우엔, git fetch [tag name]을 통해 해당 지점의 태그를 가져올 수 있게 됩니다. 

 

간단한 실습을 통해 실무에서 자주 쓰이는 tag 기능에 대해 숙지할 수 있게 되었습니다. 

 

<번외>

 1. fetch vs pull 

  • git pull
    • 원격 저장소에서의 변경 내용을 로컬 복사본과 자동으로 병합(git fetch +  git merge)
  • git fetch
    • 변경 내용만 다운로드

2. branch vs tag

  • branch
    • tag와 동일하게 코드베이스 내에서 version control을 위해 사용
    • 새로운 기능과 버그 수정을 위해 사용, 이를 통해 기본 코드베이스에 영향을 끼치지 않고, 작업이 완료되면 브랜치를 기본 코드베이스에 병합하여 변경사항을 애플리케이션에 통합할 수 있습니다.
    • 이를 통해 여러 사람이 프로젝트의 다양한 측면을 동시에 작업할 수 있게 됩니다.
  • tag
    • 저장소 기록의 특정 지점을 표시하기 위해 사용
    • 새로운 소프트웨어 버전을 사용자에게 출시하려고 할 때, Git 태그를 사용
    • 버전 번호를 반영하도록 태그를 지정하고, 릴리스의 변경사항에 대한 간략한 설명을 포함할 수 있습니다.
    • Branch는 브랜치가 가리키는 커밋이 달라진다는 의미이고, Tag는 특정한 커밋 id만을 가리킵니다.

3. git area

  1. Working Directory: 내가 작업하고 있는 프로젝트의 디렉토리
  2. Staging Area: commit을 하기 위해 git add 명령어로 추가한 파일들이 모여있는 공간
  3. Repository: 커밋들이 모여있는 저장소

 

4. git 최초 설정 

  • git config -l (git 설정 확인)
  • git 계정 정보를 변경할 시, git에 설정된 계정 삭제 후 계정 등록
    • git config --unset user.name
    • git config --unset user.email
    • git config --global user.name "user.name"
    • git config --global user.email "user.email"

 

5. git log

  • 커밋 히스토리 조회(커밋 이력 상세 조회, 가장 최근의 커밋이 나오고 스페이스 바를 누르면 변경 이력이 하나씩 보입니다)
  • --oneline: 커밋 이력 중, 커밋 ID와 타이틀 메세지만 조회
  • --decorate: git log 상세하게 보기
  • reflog: 변경 내역 확인(이전 HEAD가 가리키고 있던 모든 내용들을 전부 기록)

 

 

반응형