이번 OSS 컨트리뷰톤에 참여하게 되어, 협업을 위한 git 사용법에 대한 특강을 온라인으로 수강하였고 내용을 복기하고 추후에 또 참고하기 위해 본 글을 작성하게 되었습니다.
오픈 소스를 프로젝트 기여를 위한 일련의 과정을 크게 다음과 같습니다.
따라서, 다음과 같은 일련의 과정을 수행하기 위해서는, 우선 git의 기능을 좀 더 활용 할 필요가 있어 보입니다.
git에는 코드의 변경사항 commit(커밋)의 역사를 담고 있습니다.
따라서, 오픈소스에 기여하기 위해서는 우선 내부 소스코드가 누구에 의해서 어떻게 변했는지 본 프로젝트에는 누가 가장 많이 기여하고 있는지 등을 살펴보기 위해서는 commit의 역사를 알아볼 필요가 있습니다. 아래에 commit의 역사를 볼 수 있는 명령어들을 정리해 보았습니다.
commit의 history를 볼 수 있는 명령어들
git shortlog -sn --merge | less
# less : 화면에 출력할 수 있는 만큼만 보여주는 명령어(linux)
# -s : summary, -n : numberd
# --merge, --no-merges : merge와 관계있는/없는 커밋만 보기
git log
git log --oneline
git log -p
# 특정 옵션이 없으면, 커밋ID, Author, Date, title만 출력
# --oneline : 한줄씩 요약해 출력, -p : 커밋 상세내용도 출력
# [commit 해시ID] [commit title] 형태로 출력
# 한줄씩 최근부터 - 최초커밋까지 출력된다.
git show [commit ID]
# 해당 파일의 변경 내용, commit message, 커밋한 사람 등을 볼 수 있다.
# Trouble Shooting, 개발 기록, 왜? 그리고 어떻게?를 살펴볼 수 있음
git show [commit ID] | grep "diff --git"
# grep : 리눅스 문자열 검색 명령어
# "diff --git"은 변경된 파일마다 git 상세내용에 기재된다.
# merge commit은 빈 커밋이라 diff에 대한 내용이 없다.
git log --oneline -- [directory]
# -- : 리눅스에 등록된 특정 명령어를 무시하고, 본래 이름을 적용
# [ example ] node가 폴더명인데 -- node 명령어는 노드를 실행하지 않음
git log --oneline --after=2020-07-01 --before=2020-07-31
# --after=yyyy-mm-dd : 특정 날짜 이상
# --before=yyyy-mm-dd : 특정 날짜 이하
git log --oneline --reverse
# --reverse : 순서 뒤집어서 보기