개발/협업 도구로 십여 년 전부터 내내 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를 활용할 방법은 무궁무진하겠으나... 나는 이 정도면 충분하다.
끝.
'Tech: > 일반·기타' 카테고리의 다른 글
Windows 11 당황스런 자동 재부팅 막기 (0) | 2023.12.13 |
---|---|
AKS 환경: MariaDB 10.4 -> 10.11 업그레이드 절차 (0) | 2023.06.02 |
Docker 환경: MariaDB 10.4 -> 10.11 (1) | 2023.05.18 |
HTML: autocomplete="off" (0) | 2023.01.10 |
M365 서비스 계정: 회의실 일정 연동 (0) | 2022.12.08 |