일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- git
- TypeScript
- 그럼에도불구하고
- redux
- react
- 코드업
- JS
- CSS
- frontend
- HTML
- 그럼에도 불구하고
- 프론트엔드
- 반응형 페이지
- node
- JavaScript
- webpack
- 자바
- 변수
- 코딩테스트
- 자바문제풀이
- @media
- react-router-dom
- cleancode
- Servlet
- github
- java
- max-width
- node.js
- media query
- coding
- Today
- Total
그럼에도 불구하고
[Git, GitHub] Tag에 대하여 알아보자 본문
Tag에 대해 알아보겠습니다.
🧑🏻💻 Semantic Versioning
Semantic version 지정 사양은 소프트웨어 release를 위한 표준화된 버전 지정 시스템을 설명합니다. 개발자가 소프트웨어 릴리스에 의미를 부여할 수 있는 일관된 방법을 제공합니다.
버전은 마침표로 구분된 세 개의 숫자로 구성됩니다.
2.4.1
2: MAJOR RELEASE
4: MINOR RELEASE
1: PATCH RELEASE
📌 Initial Release
일반적으로 첫 번째 release는 1.0.0으로 시작합니다.
⭐️ Patch Release
Patch Release는 일반적으로 새로운 기능이나 중요한 변경 사항이 포함되어 있지 않습니다. 일반적으로 코드 사용 방식에 영향을 미치지 않는 버그 수정 및 기타 변경 사항을 나타냅니다.
Patch Release 전
v1.0.0
Patch Release 후
v1.0.1
⭐️ Minor Release
Minor Release는 새로운 기능이 추가되었음을 의미하지만 프로젝트는 여전히 이전 버전과 호환됩니다. 주요 변경 사항이 없습니다.
또한, 새로운 기능은 선택 사항이며 사용자가 직접 다시 작성하도록 강요해서는 안됩니다.
Minor Release는 신기능이 추가됐을 때 배포합니다.
Minor Release 전
v1.0.0
Minor Release 후
v1.1.0
⭐️ Major Release
주요 Release는 더 이상 이전 버전과 호환되지 않는 중요한 변경 사항을 의미합니다. 기능이 제거되거나 크게 변경될 수 있습니다.
Major Release 전
v1.0.0
Major Release 후
v2.0.0
🧑🏻💻 Git Tags
tag는 Git 기록의 특정 지점을 가리키는 포인터입니다.
tag로 특정 순간을 표시할 수 있으며, tag는 프로젝트에서 version release를 표시하는데 가장 자주 사용됩니다.
tag는 생성되면 항상 동일한 commit을 참조합니다.
⭐️ Two Types
tag의 유형에는 두가지가 있습니다.
1. LightWeight tag
2. Annotation tag
lightWeight tag는 특정 commit을 가리키는 이름이자 label일 뿐입니다.
annotation tag는 작성자의 이름과 이메일, 날짜, tagging message (예: commit message)를 포함한 추가 메타 데이터를 저장합니다.
⭐️ Viewing Tags and Searching
git tag
git tag는 현재 저장소의 모든 태그 목록을 인쇄합니다.
tag는 깃 커밋 히스토리에 존재하는 특정 순간, 커밋을 가리키며 일부러 바꾸지 않는 이상 항상 같은 지점을 가리킵니다.
git tag -l "*beta*" => tag 사이에 beta가 있는 모든 tag를 검색
git tag -l "v17*" => v17로 시작하는 모든 tag를 검색
git tag -l을 사용한 다음 와일드카드 패턴을 전달하여 특정 패턴과 일치하는 태그를 검색할 수 있습니다.
예를 들어 git tag -l *beta*는 이름에 "beta"가 포함된 태그 목록을 출력합니다.
⭐️ Checking out Tags
특정 태그에서 저장소의 상태를 보려면 git checkout <tag>를 사용할 수 있습니다.
git checkout <tag>
⭐️ Git diff
두 tag사이의 변경사항을 확인할 수 있습니다.
git diff <tag1> <tag2>
⭐️ Creating LightWeight Tags
LightWeight Tags를 생성하려면 git tag <tagname>을 사용하면 됩니다. 기본적으로 Git은 HEAD가 참조하는 커밋을 참조하는 태그를 생성합니다.
git add
git commit - m
git tag <tagname>
⭐️ Annotated Tags
git tag -a를 사용하여 주석이 달린 새 태그를 만듭니다. 그러면 Git이 기본 텍스트 편집기를 열고 추가 정보를 묻는 메시지를 표시합니다.
git commit과 유사하게 -m 옵션을 사용하여 메시지를 직접 전달하고 텍스트 편집기를 열지 않아도 됩니다.
주석 태그도 일반 태그처럼 헤드가 현재 가리키는 커밋을 가리킵니다.
git tag -a <tagname> -m "message"
⭐️ Tag 보기
git show <tagname>
⭐️ Force로 tag 교체하기
tag 값은 고유 값이여야 하기 때문에 재사용할 수 없습니다. 하지만 기존에 지정한 tag 값을 다른 commit으로 옮길 수 있습니다.
git tag <tagname> Hash -f
위의 명령어를 사용하면 기존의 tag를 다른 commit으로 교체할 수 있습니다.
⭐️ Delete Tags
태그를 삭제하려면 git tag -d <tagname>을 사용하면 됩니다.
git tag -d <tagname>
⭐️ Pushing Tags
기본적으로 git push 명령은 태그를 원격 서버(GItHub)로 전송하지 않습니다. 한 번에 푸시하고 싶은 태그가 많은 경우 git push 명령에 --tags 옵션을 사용할 수 있습니다.
이렇게 하면 아직 존재하지 않는 원격 서버로 모든 태그가 전송됩니다.
git push --tags
'이모저모 > Git, GitHub' 카테고리의 다른 글
[Git, GitHub] git fetch 와 git pull (0) | 2023.07.18 |
---|---|
[Git, GitHub] 다양한 명령어들에 대해 알아보자 (checkout, restore, reset, revert) (0) | 2023.07.13 |
[Git, GitHub] git stash란? (0) | 2023.07.11 |
[Git, GitHub] Gif Diff란? (0) | 2023.07.06 |
[Git, GitHub] 브랜치(branch) 병합(merge)하기 (0) | 2023.07.06 |