개발/협업 도구로 십여 년 전부터 내내 svn을 쓰다가 최근 몇 년 전부터는 git을 주로 사용하고 있다.

 

작업물을 상태 파악하고status, 올리고add/commit/push, 취소하고restore 하는 기본 작업들은 충분히 외어서 잘 쓰고 있는데, 다른 사람이 한 작업물의 내용을 확인/비교하는 작업을 명령어 도구로는 잘 사용하지 못하고 GUI 도구를 불편하게 쓸 수 밖에 없었다.

 

그래서 이 참에 한번 명령어 도구로 빠르게 쓸 수 있는 방법을 찾아 연구해 봤다.

 

>> 참조1: git log --help (웹페이지가 열린다)

>> 참조2: Git log 주요 명령어 정리 · Jistol Github Page (초기에 꽤 도움이 됐다)

 

 

 

1. 최근 commit 목록 보기

git log --pretty=oneline --abbrev-commit --graph -15

이 명령을 쓰면 최근 15개 commit을 각각 한줄로 요약해서 보여준다.

branch로 분기되었으면 분기된 그래프 표시까지 한방에 볼 수 있다.

 

그런데, 아쉽다. 누가 commit했는지 정보가 안나온다. oneline 대신 short을 쓰면 나오긴 하지만 줄이 길어진다.

딱 위 정보에 작성자만 추가해서 보고 싶다면?

git log --pretty=format:"%C(auto)%h [%an] %s" --graph -15

좀 복잡하게 됐지만 이게 딱이다. 복사해서 쓰면 편리하다.

 

+추가

참조(HEAD -> master, origin/master, origin/HEAD 같은 정보)를 표시하려면 아래와 같이 쓰면 된다.

(날짜도 yyyy-MM-dd HH:mm:ss 형식으로 지정해서 보는 게 편하다)

git log --date=format:"%Y-%m-%d %H:%M:%S" --pretty=format:"%C(auto)%h(%ad) [%an] %s %d" --graph -15

 

 

 

2. 특정 commit 변경사항 확인

commit 목록을 확인했으면 이제 해당 commit의 내용을 확인할 차례다.

해당 commit의 축약 hash가 "77121d4e"라고 하면,

git log 77121d4e --stat -1

이렇게 쓰면 해당 commit의 변경 파일 목록이 표시된다.

파일 목록 중 ".../Areas/API/Controllers/UserController.cs" 가 포함되어 있다고 하면,

git log -p */Areas/API/Controllers/UserController.cs

이렇게 쓰면 해당 파일의 변경 내용이 줄/블럭 단위로 하이라이트되어 표시된다.

또는 디렉터리 길이가 너무 길어 마지막 파일명만 가지고 쓰고 싶다면...

git log -p 77121d4e */UserController.cs

이렇게 commit hash를 넣어주면 된다.

 

그런데, 가끔 변경 내용을 단어 단위로 하이라이트해서 보고 싶을 때가 있다.

그럴 때는 --word-diff 옵션을 쓰면 된다.

git log --word-diff -p 77121d4e */UserController.cs

 

 

이 외에도 git log를 활용할 방법은 무궁무진하겠으나... 나는 이 정도면 충분하다.

 

끝.

 

 



Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]