tag가 뭔지에 대해 간략하게 설명드리겠습니다.
tag
- 프로젝트에서 중요한 시점들을 기록해 두는 방법
- 주로 release(새로운 버전 출시)를 위해 사용되는 키워드입니다
- tag를 만드는 시점이 어떤 version을 release하는 시점입니다
tag의 종류
- lightweight tag: commit id만을 보존하는 태그
- 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
- Working Directory: 내가 작업하고 있는 프로젝트의 디렉토리
- Staging Area: commit을 하기 위해 git add 명령어로 추가한 파일들이 모여있는 공간
- 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가 가리키고 있던 모든 내용들을 전부 기록)
'DevOps > Git' 카테고리의 다른 글
[Git] Git log 옵션 정리 (0) | 2024.08.22 |
---|---|
[git] git commit message 한글 깨짐 현상 해결 (1) | 2024.02.27 |
[Git] needs merge : you need to resolve your current index first (0) | 2023.11.25 |
[Git] 프로그램 버전 관리와 코드 공유 및 협업을 위한 Git & Github에 대해 알아보자 (2) | 2023.10.22 |
Git-flow를 활용한 협업 방식 (1) | 2022.12.28 |