GIT을 사용하다 보면 자주 사용하는 명령어 중 하나가 바로 [ git log ]이다.

commit list를 보기 위한 목적도 있지만, 현재 HEAD가 어디에 있는지 브랜치 상황은 어떤지 등도 확인할 수가 있다. 물론 가장 큰 이유는 언제 어떤 commit이 들어왔는지 확인하는 것이다.

문제는 git log 명령에 대한 출력 결과에 정말 다양한 취향이 존재하며, 이를 만족시키기 위해 다양한 옵션과 함께 자유롭게 결과 형식을 꾸밀 수 있는 pretty-format을 지원하고 있다.

많이 아는 사람은 입맛에 맞게 꾸미면 되지만, 일반적인 사용자들은 너무 많은 옵션을 어떻게 사용해야 할지 어렵기만 할 뿐이다.


개인적으로 가장 자주 사용하는 옵션은 아래와 같다.

$ git log --oneline --graph --decorate --all


출력 결과는 아래와 같다. 아래에 표시는 안했지만, 색도 입혀져 있다.

$ git log --oneline --graph --decorate --all
* d664401 (HEAD, master) [create] 4th.txt - abc
* b7b48a2 [modify] 3rd.txt - ghi
| * adbdaa8 (develop) [modify] 2nd.txt - ghi
| * 47b5c9d [modify] 1st.txt - def
|/ 
* afa1140 (origin/master) [modify] 2nd.txt - def
* 1abd2f1 [create] 3rd.txt
* 6546134 [create] 2nd.txt
* 2dc1cad [create] 1st.txt


일반적으로는 위와 같은 출력만으로도 대부분의 상황은 해결이 된다. commit list도 보여주고 있고 브랜치의 모습도 그래프 형식으로 보여주고 있으며 commit comments도 잘 보여주고 있다. 거기에다가 HEAD의 위치나 브랜치의 위치도 잘 보여주고 있다.

하지만, 개인적으로 조금 부족한 부분이 있어서 아쉬움이 좀 남았다. 그래서 이런 저런 방안을 찾던 중 git log에서도 지원을 하고 있는 pretty-format에 대해서 알아보았다.

그러던 중 웹에서 몇 몇 훌륭한 예시들을 보게 되었고, 개인적인 입맛에 맞게 살짝 변형을 해보았다.

$ git log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ad)%C(reset) %C(white)%s%C(reset) %C(bold white)<%an>%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=short
* d664401 - (2013-03-09) [create] 4th.txt - abc <worker> (HEAD, master)
* b7b48a2 - (2013-03-09) [modify] 3rd.txt - ghi <worker>
| * adbdaa8 - (2013-03-09) [modify] 2nd.txt - ghi <worker> (develop)
| * 47b5c9d - (2013-03-09) [modify] 1st.txt - def <worker>
|/ 
* afa1140 - (2013-03-09) [modify] 2nd.txt - def <worker> (origin/master)
* 1abd2f1 - (2013-03-09) [create] 3rd.txt <worker>
* 6546134 - (2013-03-09) [create] 2nd.txt <worker>
* 2dc1cad - (2013-03-09) [create] 1st.txt <worker>


앞에서 사용한 것과 조금 차이가 있다. 일단 날짜가 나오고 commiter 계정 정보도 나온다. 물론 앞에서 사용했던 옵션에서 보여주고 있는 정보들은 여전히 나오고 있다.

그런데, 여전히 문제가 하나 있다. log를 확인하고 싶을 때마다 저 옵션을 계속 입력할 수는 없다. 저걸 외워서 하겠다라는 사람이 있으면 대단한 것이 아니라 무식한 것이다.

그래서 사용할 수 있는 방법이 바로 alias를 활용하는 것이다. 한 번 살펴보자.

$ git config alias.view "log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ad)%C(reset) %C(white)%s%C(reset) %C(bold white)<%an>%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=short"


사용법은 간단하고도 유용하다.

$ git view -5
* d664401 - (2013-03-09) [create] 4th.txt - abc <worker> (HEAD, master)
* b7b48a2 - (2013-03-09) [modify] 3rd.txt - ghi <worker>
| * adbdaa8 - (2013-03-09) [modify] 2nd.txt - ghi <worker> (develop)
| * 47b5c9d - (2013-03-09) [modify] 1st.txt - def <worker>
|/ 
* afa1140 - (2013-03-09) [modify] 2nd.txt - def <worker> (origin/master)


일반 명령어처럼 사용할 수가 있다. 더불어 뒤에 옵션도 추가로 사용할 수 있다.


위 샘플을 가지고 각자 취향에 맞는 log 옵션을 찾아보길 권한다. 정말 한 번 고생을 해 놓으면 정말 편리하다 !!!

반응형

+ Recent posts