지옥에서 온 Git

태그(tag)

수업소개

태그는 일상에서 사용하는 용어입니다. 옷에 붙어 있는 것이 태그죠. 태그의 목적은 옷을 설명합니다. git에서의 태그는 특정한 커밋 버전을 설명합니다. 이 수업에서는 git에서 태그를 사용하는 방법에 대해서 알아봅니다. 

수업

수업 내용

태그 목록 보기

git tag

태그 생성 (light weight tag)

git tag "태그 이름" [태그가 가르킬 버전의 커밋 아이디]

태그 생성 (annotated tag)

git tag -a "태그 이름" -m "태그에 대한 설명" [태그가 가르킬 버전의 커밋 아이디]

태그 삭제

git tag -d "삭제할 태그명"

태그 원격 저장소로 업로드

git push --tags

댓글

댓글 본문
  1. 주니어개발자
    사용 중인 Tag 명을 중복해 사용할 순 없습니다.
    따라서 어떤 하나의 태그는 특정 Commit ID만 참조하게 됩니다.

    반면 어떤 하나의 Commit ID에 Tag를 여러개 거는 건 가능하겠죠.
    따라서 동일한 Commit ID에는 두개, 세개, 여러개의 tag 를 가질 수 있습니다.

    수업에서 배운 것을 토대로 Show and Prove 하시면 될 것 같습니다.
    이미 사용 중인 태그이름을 중복해서 사용하려면 태그가 생성되지 않는 걸 확인할 수 있습니다.
    하지만 어떤 커밋에 태그를 여러개 부여할 수 있는 걸 확인할 수 있네요
    대화보기
    • odark
      ./git/refs 들어가서 vi 1.1.3 으로 새로운 파일을 생성할때 기존의 1.1.2버전의 commit ID를 적어준다는건
      중복이 되는건데~~ 그러면 결국 동일한 commit ID가 두개의 tag id값을 갖는다는건가요?
      아니면 1.1.2가 아닌 1.1.3으로 바뀌게 되는건가요?

      다만 git tag 명령어로 보면 1.1.2도 그대로 나오는거 보면 덮어씌여진것 같진 않은데~~

      git log --decorate로 보면 commit ID별로 출력되어 보이는곳에
      지금 등록된 commit ID 옆으로 (tag->1.1.2 와 1.1.3 ) 모두 표시되는건지 궁금하네요

      마지막으로 이건 위 강좌에는 없는데 만약 git log 로 조회시 여러개의 기존 commit ID들이 보일테고
      그중에 맨마자막 즉 header가 가리키는 맨마지막에만 tag를 달면 나중에
      tag값을 기준으로 소스를 가져오면 기존 commit id 태그 없는 기존 변경소스들 모두 포함인건가요?
      또 여러 커밋ID가 있으면 그중에 tag가 듬성 듬성 들어가있으면 tag명으로 pull로 소스 가져오기 하면
      해당 tag까지만 소스를 가져오는건가요?

      자세한 답변 달아주시면 정말 감사하겠습니다.
    • supernet
      감사합니다.
    • software.lee
      감사합니다.
    • 제로스
      좋은강의 감사합니다.
    • groundntree
      * 실습을 위한 환경 만들기
      mkdir tag
      cd tag
      git init
      vim f1.txt
      git add f1.txt
      git commit -m 1
      vim f1.txt
      git commit -am 2
      git log --decorate

      * 마지막 커밋 버젼에 태그 등록/확인
      git tag 1.0.0
      git log --decorate
      git tag

      * 한번 더 커밋하여 annotated tag 등록
      vim f1.txt
      git commit -am 3
      git log --decorate
      git tag -a 1.1.0 -m "bug fix" master
      git log --decorate

      * 태그에 대한 자세한 정보 확인
      git tag -v 1.1.0

      * 원격저장소에 태그 푸시
      git remote add origin https://github.com......git
      git push
      git push --set-upstream origin master
      git push --tags

      * tag 삭제
      vim f1.txt
      git commit -am 4
      git tag 1.1.1
      git tag
      git tag -d 1.1.1
      git tag
    • lovetoken
      정보 감사합니다 ^^