이번 시간에는 tag
의 원리에 대해 알아보겠습니다.
저번 시간에 사용하였던 tag
디렉토리의 f1.txt
를 한번 더 사용하겠습니다.
파일의 내용에 e
를 추가 해주고 commit
을 해줍니다.
이 상태에서 태그를 만들면 gistory
에 어떤변화가 있을까요?
git tag 1.1.2
로 새로운 태그를 만들어줍시다.
gistory
에너는 refs\tags\1.1.2
디렉토리만 변화하였고 최근의 commit_id
를 가르키고 있습니다.
즉 태그를 만든다는 것은 refs\tags
파일 아래에 파일이 생긴다는 의미입니다.
그러면 직접 그 디렉토리에 가서 파일을 만들어 보겠습니다.
아까 그 경로로 가줍시다.
tags/Documents/tag/.git/refs/tags
로 가서 1.1.3
이라는 새로운 파일을 만들고 파일의 내용은 이전의 commit_id
를 넣었습니다.
다시 원래 디렉토리로 돌아오고 git tag
이 태그가 추가된 것을 확인 할 수 있습니다.
즉 git
의 인터페이스를 사용하지않고도 원리를 알면 스스로 태그를 만들 수 있습니다.
방금 만든것은 light weight tag
입니다. annotated tag
도 만들어 봅시다.
먼저 f1.txt
를 한번 더 수정해주고 commit
를 해줍니다.
git tag -a 1.1.4 -m "bug fix"
를 통해서 주석이 있는 태그를 만들어 주었습니다.
gistory
에 들어가보면 object
파일이 변경되었습니다.
tag
이름과 누가 만들었는지에 대한 정보 , 그 태그에 대한 내용과 commit_id
를 담고 있습니다.
.git\refs\tags\1.1.4
에서도 내용이 똑같이 변경되었습니다.
branch
의 원리를 알고있다면 , tag
와 branch
의 원리는 거의 똑같다고 말할 수 있습니다.
그저 branch
는 최신 branch
가 가르키는 commit_id
가 변하지만 tag
는 commit_id
가 고정되어있는 점 빼고는 동일하다고 볼 수 있습니다.
이번시간에는 gistory
를 통해 tag
의 원리에 대해 알아보았습니다.
여기까지 하도록 하겠습니다.