AI 공부하는 도비

대학원생이 AI, NLP등을 공부합니다

코딩

[Git 명령어] 프로젝트 읽기

공부하는 도비 2020. 7. 18. 19:25

이 글은 Git에 올라와있는 오픈소스 프로젝트들에 대한 코드를 읽는데 도움이 되는 명령어들이다. 어떤 프로젝트이던지 그 구조를 파악하고 어느 개발자가 코드를 작성하였는지를 알면 전체적인 insight에 도움이 된다.

 

*프로젝트 개발의 전체적인 흐름

공식 오픈소스 프로젝트를 upstream으로 두고, 이를 Fork해와서 origin으로 사용한다.

Fork는 프로젝트를 내 git저장소로 복사해오는 개념이라고 생각하면 된다. Fork한 저장소를 origin으로 clone해오면 내 로컬저장소에서 프로젝트를 자유롭게 수정할 수 있다.

로컬에서 수정을 마친 뒤 push명령어를 통해 내가 Fork한 저장소, 즉 origin에 업로드할 수 있고, 이를 공식 오픈소스 프로젝트 즉, upstream에 pull-request를 요청할 수 있다.

 

  1. 내 git저장소로 Fork
  2. Fork한 프로젝트의 clone URL 복사
  3. $ git clone [복사한주소]

 

**commit == 소스파일 수정내역

 

*개발자별 commit 보기

$ git shortlog -sn | nl

$ git shortlog -h | grep summary

 

nl: line number 순위표시용으로 사용

-s: 개발자별 commit 개수 요약

-n: 개발자별 commit 개수 순위 정리

grep: 다음 string으로 정렬

 

*전체 commit의 개수

$ git log --oneline | wc -l

 

wc -l : (파일) 라인수 개수 측정

 

*전체 commit 리스트 확인

$ git log --oneline

//참고: 'q' 키 눌러서 나가기

 

특정 폴더를 기준으로 commit 리스트 확인

  • $ git log --oneline -- [폴더이름/]

특정 날짜 기준으로 commit 리스트 확인(날짜포함)

  • $ git log --oneline --after=2020-01-01 --before=2020-06-30

ex. 2020년 6월 한달간의 수정내역(commit)의 개수

  • $ git log --oneline --after=2020-06-01 --before=2020-06-30

특정 날짜+파일 기준으로 commit 리스트 확인

  • $ git log --oneline --afte=2020-06-01 --before=2020-06-30 -- [폴더이름/]

 

*전체 commit 자세히 보기

$ git log -p

 

*commit 옛날 것부터 확인하기

$ git log --reverse

 

**commit의 ID

== 고유한 ID 해시값으로 소스파일이 조금이라도 수정되면 값이 변화한다.

 

*commit 내용 확인

$ git show [commit ID] 해당 commit의 수정한 파일 확인하기

$ git show [commit ID] | grep "diff --git" 해당 commit의 수정한 파일 개수 확인

$ git show [commit ID] | grep "diff --git" | wc -l

 

 

 

Blame

$ git blame [파일명]

해당 소스라인에 대해서 누가 마지막으로 수정을 했는지 commit ID를 추적할 수 있다.