본문 바로가기

개발 이야기/Git

Git 요약 5. Tag(태그), Alias(가명) 사용하기

반응형
Tag
  • 사람들은 보통 릴리즈할 때 사용
  • Tag 조회
    • git tag -> 이미 만들어진 Tag가 있는지 확인, 알파벳 순서
    • $ git tag -l "v1.8.5*" -> 검색 패턴을 사용하여 Tag를 검색
    • git show <tag> -> 태그 정보와 커밋 정보를 모두 확인
  • Lightweight Tag
    • 브랜치와 비슷한데 브랜치처럼 가리키는 지점을 최신 커밋으로 이동시키지 않는다.
    • 단순히 특정 커밋에 대한 포인터일 뿐이다.
    • 기본적으로 파일에 커밋 체크섬을 저장
    • git tag <tag>
    • git show 를 실행하면 별도의 태그 정보를 확인할 수 없다. 이 명령은 단순히 커밋 정보만을 보여준다.
  • Annotated Tag (주석이 달린 태그)
    • Git 데이터베이스에 태그를 만든 사람의 이름, 이메일과 태그를 만든 날짜, 그리고 태그 메시지도 저장
    • GPG(GNU Privacy Guard)로 서명할 수도 있다.
    • 일반적으로 Annotated 태그를 만들어 이 모든 정보를 사용할 수 있도록 하는 것이 좋다.
    • 하지만 임시로 생성하는 태그거나 이러한 정보를 유지할 필요가 없는 경우에는 Lightweight 태그를 사용할 수도 있다.
    • git tag -a <tag> <commit hash> -m "<tag message>"
      • -m 옵션으로 태그를 저장할 때 메시지를 함께 저장
      • ex) git tag -a v1.2 9fceb02
  • git push 명령은 자동으로 리모트 서버에 태그를 전송하지 않는다. 태그를 만들었으면 서버에 별도로 Push 해야 한다.
    • git push <remote-name> <tag>
    • git push <remote-name> --tags -> 한 번에 태그를 여러 개 Push
  • 태그가 가리키는 특정 커밋 기반의 브랜치를 만들어 작업하려면 -> git checkout -b version2 v2.0.0
  • 물론 이렇게 브랜치를 만든 후에 version2 브랜치에 커밋하면 브랜치는 업데이트된다. 하지만, v2.0.0 태그는
    가리키는 커밋이 변하지 않았으므로 두 내용이 가리키는 커밋이 다르다는 것을 알 수 있다. ?
 
Git Alias (가명)
  • git config --global alias.co checkout -> git commit 대신 git ci 만으로도 커밋할 수 있다.
  • ex)
    • git config --global alias.br branch
    • git config --global alias.ci commit
    • git config --global alias.st status
    • git config --global alias.unstage 'reset HEAD --'
    • git config --global alias.last 'log -1 HEAD'
    • git config --global alias.visual '!gitk'
      • Git의 명령어뿐만 아니라 외부 명령어도 실행할 수 있다.
      • ! 를 제일 앞에 추가하면 외부 명령을 실행한다.
      • 커스텀 스크립트를 만들어서 사용할 때 매우 유용하다.

 

반응형