[GIT] GIT을 선택하다. - 5편 저장소 제대로 활용하기
태그를 이용하여 마일스톤 표시
프로젝트가 진행되면 마일스톤을 달성하게 됩니다. 마일스톤을 달성하면 릴리스를 배포하고, 새로운 버전을 생성하는 등의 작업을 합니다. 태그를 사용하면 마일스톤을 쉽게 표시할 수 있고 나중에 원하는 마일스톤으로 돌아갈 수 있습니다. 태그는 저장소의 책갈피처럼 동작합니다. 태그를 붙여두면 나중에 그 태그의 위치로 곧장 되돌아갈 수 있습니다. 필요하다면 커밋에도 태그를 붙일 수도 있습니다. 보통 태그는 프로젝트에서 코드를 릴리스할 때 가장 많이 사용한다 태그를 이용하면 릴리스한 후에도 버그 수정이나 변경이 필요할 경우 릴리스된 코드로 돌아갈 수 있습니다. git의 태그는 읽기 전용입니다. 읽기만 가능하다는 말은 브랜치와는 다르게 태그의 내용을 변경할 수 없음을 의미합니다.
- git에서 태그를 붙이는 명령어는 git tag입니다. 현재 어떠한 태그들이 있는지 살펴 보려면 git branch처럼 매개변수를 지정하지 않고 명령어를 실행하면 됩니다.
git tag
1.0
- 태그를 붙힐때는 전달인자로 태그명을 전달하여 진행합니다.
- git tag에 태그명만 지정하고 실행하면 git은 현재 작업 트리의 커밋에 태그를 붙힙니다. 원하는 커밋에 태그를 붙이려면 매개변수를 추가하면 됩니다. 추가할 매개변수로는 유효한 커밋명이나 브랜치명을 사용할 수 있습니다.
git tag 1.1
git tag
1.0
1.1
- 아래와 같은 명령어는 contacts브랜치의 가장 최신 커밋에 태그를 붙힙니다.
- 태그를 이용해서 태그를 붙여둔 저장소의 상태로 포인터를 이동시킬 수 있다. 비록 태그의 내용을 변경할 수는 없지만 브랜치처럼 체크아웃 가능합니다.
git tag contacts/1.1 contacts
git tag
- 아래의 결과를 보면 알겠지만 no branch로써 브랜치 없는 태그에 포인터가 이동되어 있는 것을 알 수 있습니다.
- 태그의 내용을 수정하고 싶다면 git checkout -b 매개변수를 지정하여 체크아웃 하고 새로운 브랜치를 생성해야 합니다.
git checkout 1.0
git branch
* (no branch)
* master
* new
git checkout -b from-1.0
- 위와 같이 포인터를 태그로 넘기고 난후 다시 브랜치를 생성하지 않고 바로 태그에서 브랜치를 생성할 수도 있습니다.
git checkout -b from-1.0 1.0
릴리즈 브랜치 다루기
릴리즈 브랜치는 릴리즈할 코드를 준비하는 장소 입니다. 일반적으로 릴리즈할 코드를 분리할 목적으로 릴리즈 브랜치를 사용합니다. 릴리즈 브랜치를 생성할 시점은 개발 스타일에 따라 다르므로 여기에서 편의상 릴리즈 브랜치의 생성 시점과 정의를 다음 과 같이 설명하겠습니다.
- 릴리즈 브랜치는 프로젝트에서 이번 릴리즈에 포함하기로 한 기능 구현이 끝나면 생성합니다.
- 릴리즈 브랜치에서는 최소한의 변경만 발생하며, 버그나 로직의 수정에만 집중할 뿐 새로운 기능을 추가하지 않습니다.
- 일반적으로 릴리즈 브랜치에는 RB_라는 접두어를 붙이며, 그 뒤에 릴리즈 번호를 붙힙니다.(ex : RB_1.2, RB_1.3)
- 릴리즈 브랜치는 해당 릴리즈가 요구하는 마지막 테스트까지 통과하는 짧은 기간 동안만 존재합니다.
- 릴리즈 준비가 완료되면, 해당 릴리즈를 표시하는 태그를 붙히고 브랜치를 삭제합니다.
- 태그가 해당 위치를 표시하고 있으므로 이력을 유지하기 위해서 브랜치를 유지할 필요가 없습니다. 만일 이력을 유지하기 위한 브랜치라면 브랜치의 목록이 난잡해 질 것입니다.
출처: https://redgolems.tistory.com/9?category=481635 [레드골렘즈 콤비의 개발이야기]
'형상관리 > Git' 카테고리의 다른 글
[GIT] GIT을 사용하다. - 4편 TAG관련 명령어 (0) | 2021.01.14 |
---|---|
[GIT] GIT을 사용하다. - 3편 REMOTE관련 명령어 (0) | 2021.01.14 |
[GIT] GIT을 사용하다. - 2편 LOG관련 명령어 (0) | 2021.01.14 |
[GIT] GIT을 사용하다. - 1편 BRANCH관련 명령어 (0) | 2021.01.11 |
[GIT] GIT을 선택하다. - 4편 REMOTE활용하기 (0) | 2021.01.11 |
[GIT] GIT을 선택하다. - 3편 LOG활용하기 (0) | 2021.01.11 |
[GIT] GIT을 선택하다. - 2편 BRANCH활용하기 (0) | 2021.01.11 |
[GIT] GIT을 선택하다. - 1편 GIT에 대하여 (0) | 2021.01.11 |