본문 바로가기
프로그래밍/git

[git] git을 이용한 버전관리 - 기본편 (tag, alias)

by 사바라다 2020. 4. 10.

 

안녕하세요. 오늘은 저번 포스터에 이어서 git의 명령어에 대해서 추가적으로 알아보는 시간을 가지도록 하겠습니다.

이전에 보았던 명령어들이 git으로 버전관리를 하는 아주 기본적인 부분이라고 한다면 이번 포스팅에서 알아볼 명령어들은 조금은 더 고급진(?) 명령어들이라 할 수 있을 것 같습니다.

alias

alias는 git 명령어에 별명을 붙여주는 명령어입니다. 우리가 git 명령어를 쓰다보면 명령어 자체가 길다고 느껴질 때가 있습니다. 예를 들어 git commit -m "<메시지>"라는 명령어가 있습니다. git add 와 함께 많이 사용하는 명령어지요. 이 명령어를 commit 하고싶을때 마다 풀로 입력한다면 귀찮다고 생각되어질 수 있습니다. 이때 alias 명령어를 사용한다면 좀 더 줄여서 사용할 수 있습니다.

우리가 일반적으로 사용하는 commit 명령어는 아래와 같습니다.

git commit 명령어 사용

이렇게 git에서 제공하는 기본적인 명령어를 아래의 형식으로 config로 선언한 후 부터는 별명으로 실행할 수 있게 됩니다. alias.ci commit은 ci가 commit 명령어를 실행하는 것과 동일하게 하겠다는 의미입니다.

git config --global alias.<단축 명령어> <실질 명령어>

git alias 설정

이렇게 선언하고 아래와 같이 git ci -m "<메시지>"를 사용하면 정상적으로 commit 된 것을 알 수 있습니다.

git ci를 이용한 커밋

이렇게 기본명령어 뿐만 아니라 옵션을 붙여서도 가능합니다. 아래 명령어는 git log --graph 명령어를 통해 출력되는 결과입니다.

git log --graph의 결과

alias 명령어로 별명설정을 해보겠습니다. 명령어는 git config --global alias.logg 'log --graph'입니다.

이렇게 alias를 설정하고 나면 git logg 명령어 만으로도 git log --graph의 효과를 낼 수 있습니다.

git log --graph와 동일한 결과 출력

tag

tag는 특정 commit에 별명을 붙여주는 명령어입니다. 특정 commit에 별명을 붙이게 되면 나중에 배우게 될 checkout 등의 명령어를 이용해 해당 commit 상태로 쉽게 변경할 하거나 reset 명령어를 통해 돌아갈 수 있습니다. 또한 현업에서는 release 버전을 tag로 명시하고 이 버전을 배포하는 식으로 사용하기도 합니다.

git에서 tag는 이름 정보만을 가지는 lightweight tag와 보다 상세한 이름, 태그에 대한 설명, 서명 등의 정보를 포함하는 annotated tag, 이 두 가지 태그를 사용할 수 있습니다. 일반적으로 release branch에 사용하는 태그는 annotated tag를 사용하고 feature(topic) branch에는 lightweight tag를 사용합니다.

아래는 tag가 붙지 않은 commit입니다. git log -1 명령어를 통해 마지막 commit한 list를 불러와보았습니다. 이 commit에 tag를 붙여보도록 하겠습니다.

git log -1 명령어

lightweight tag는 git tag <tagname> 명령어로 생성할 수 있습니다. 해당 commit에 HEAD가 놓여져 있는 상태로 git tag v1.1로 tag를 작성합니다. 이렇게 하면 해당 commit에 tag가 붙게 됩니다. tag를 확인하는 방법은 git tag -l 명령어를 이용하면 아래와 같이 현재까지 붙은 tag 리스트를 모두 출력합니다.

git tag -l 명령어

그리고 git log -1 명령어로 아까 확인했던 commit log를 확인해보면 아래와 같이 tag가 붙어있는 것을 확인할 수 있습니다.

git log -1 명령어, tag가 붙여져 있는것 확인가능

또한 git show <tag 이름> 명령어를 이용하면 tag를 기준으로 관련된 commit과 변경사항을 알 수 있습니다.

git show v1.1 명령어

annotated taggit tag -a <tagname> [option] 명령어로 붙일 수 있습니다. 아래 명령어는 git tag -a v1.2 -m "sabarada가 작성한 tag"로 생성한 태그를  git show 명령어로 출력한 결과입니다.

그리고 이전(HEAD가 위치하지 않는..) commit에 tag를 붙이기 위해서는 git tag [-a] <tagname> <hashcode> 명령어를 이용하여 사용할 수 있습니다. 이렇게 사용하면 해당 hashcode를 가지고 있는 commit에 tag가 붙게 됩니다.

이전 commit에 tag를 붙이는 명령어

이렇게 붙은 태그는 checkout 또는 reset 명령어에 응용될 수 있습니다. git checkout v0.1 명령어를 이용하면 v0.1 tag가 붙은 commit으로 이동합니다.

마무리

오늘은 이렇게 git의 명령어 alias와 tag에 대해서 알아보는 시간을 가졌습니다. alias, tag모두 알아두면 정말 유용한 명령어들 입니다. 적절한 명령어 사용으로 생산성 높은 버전관리를 할 수 있을 것입니다.

감사합니다.

참조

git-scm

https://backlog.com/git-tutorial/kr/stepup/stepup5_2.html

 

댓글