[Git] Tag

허재훈·2023년 5월 1일
0

Git

목록 보기
7/8
post-thumbnail
  • Tag : 무수히 많은 commit들 사이에서, 중요한 commit에 tagging을 해서 바로 찾아갈 수 있도록 도와주는 기능

1. 실습 환경 만들기

  • Local Repository 복사
    git_ws 폴더 하위

git_ws % git clone https://zerobasegit:
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@
github.com/zerobasegit/tag_project.git

Cloning into 'tag_project'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.

  • 파일 생성 후 commit 3개 만들기
    • 파일 이름 : hello.txt
    • commit 1 : Hello, world.
    • commit 2 : Hello, noma.
    • commit 3 : Hello, zerobase.

git_ws % cd tag_project
tag_project % cat > hello.txt
hello, world.
tag_project % git add hello.txt
tag_project % git commit -m "commit1" hello.txt
[main 20d37a8] commit1
  1 file changed, 1 insertion(+)
  create mode 100644 hello.txt
tag_project % cat > hello.txt
hello, noma.
tag_project % git commit -m "commit2" hello.txt
[main 18b2e87] commit2
1 file changed, 1 insertion(+), 1 deletion(-)
tag_project % cat > hello.txt
hello, zerobase.
tag_project % git commit -m "commit3" hello.txt
[main 56018a5] commit3
  1 file changed, 1 insertion(+), 1 deletion(-)

(commit 1 : hello, world.)

(commit 2 : hello, noma.)

(commit 3 : hello, zerobase.)

  • (마지막 commit 내용을) Remote Repository 에 Push
    tag는 local에서 만들었다고 해서 remote에 바로 적용되는게 아니라, local에서 쓰다가 반영해야겠다 할 때 push할 수 있다.

tag_project % git push origin main
Counting objects: 9, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (9/9), 788 bytes | 788.00 KiB/s, done.
Total 9 (delta 0), reused 0 (delta 0)
To https://github.com/zerobasegit/tag_project.git
  dfe19e7..56018a5 main -> main

2. Tag

  • 특정 버전 (Commit) 에 Tag 를 달아놓을 필요가 있을 때 사용
    (예 - 버전 릴리즈)

  • Git Tag 생성 1
    현재 버전(마지막 버전)에 Tag 달기

git tag <tagname>
  • Git Tag 생성 1 실습
    현재 버전(마지막 버전) (Commit3) 에 Tag (v0.3) 달기
tag_project % git tag v0.3
  • Tag 확인

tag_project % git log
commit 56018a50e3838378d9ec4004d0197dc3314ad00c
  (HEAD -> main, tag: v0.3, origin/main
, origin/HEAD)
Author: zerobasegit <zerobase.git@gmail.com>
Date: Sun Nov 7 23:48:22 2021 +0900

  commit3

commit 18b2e87cd44fe902566d7cf0a6692e36bae28172
Author: zerobasegit <zerobase.git@gmail.com>
Date: Sun Nov 7 23:48:07 2021 +0900

  commit2

  • Git Tag 생성 2
    특정 버전에 Tag 달기
    • commithash 는 git log 하면 알 수 있음
git tag <tagname> <commithash>
  • Git Tag 생성 2 실습
    특정 버전 (Commit2) 에 Tag (v0.2) 달기
tag_project % git tag v0.2 18b2e87cd44fe902566d7cf0a6692e36bae2817
  • Tag 확인

tag_project % git log
commit 56018a50e3838378d9ec4004d0197dc3314ad00c
  (HEAD -> main, tag: v0.3, origin/main, origin/HEAD)
Author: zerobasegit <zerobase.git@gmail.com>
Date: Sun Nov 7 23:48:22 2021 +0900

  commit3

commit 18b2e87cd44fe902566d7cf0a6692e36bae28172 (tag: v0.2)
Author: zerobasegit <zerobase.git@gmail.com>
Date: Sun Nov 7 23:48:07 2021 +0900

  commit2

commit 20d37a807afa309fc06772073a7e1c5ae79cb95d
Author: zerobasegit <zerobase.git@gmail.com>
Date: Sun Nov 7 23:47:47 2021 +0900

  commit1

(두번째 commit 2 에 (tag: v0.2) 가 생겼다

  • Git Tag 생성 3
    Tag 를 Remote Repository 에 Push
git push origin <tagname>
  • Git Tag 생성 3 실습
    Tag 를 Remote Repository 에 Push

tag_project % git push origin v0.3
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/zerobasegit/tag_project.git
  * [new tag] v0.3 -> v0.3

  • Git Tag 목록 보기
git tag
  • Git Tag 목록 보기 실습
tag_project % git tag
v0.2
v0.3

  • Git Tag 상세 정보
git show <tagname>
  • Git Tag 상세 정보

tag_project % git show v0.2
commit 18b2e87cd44fe902566d7cf0a6692e36bae28172 (tag: v0.2)
Author: zerobasegit <zerobase.git@gmail.com>
Date: Sun Nov 7 23:48:07 2021 +0900

  commit2

diff --git a/hello.txt b/hello.txt
index af81e4b..a13488d 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-hello, world.
+hello, noma.

  • Git Tag 삭제 1
git tag --delete <tagname>
  • Git Tag 삭제 1 실습
tag_project % git tag --delete v0.3
Deleted tag 'v0.3' (was 56018a5)
tag_project % git tag
v0.2

  • Git Tag 삭제 2 (Remote Repository에서 삭제하기)
git push --delete origin <tagname>
  • Git Tag 삭제 2 실습

tag_project % git push --delete origin v0.3
To https://github.com/zerobasegit/tag_project.git
  - [deleted] v0.3

위 글은 제로베이스 데이터 취업 스쿨의 강의자료를 참고하여 작성되었습니다.

profile
허재

0개의 댓글