개발자가 오픈소스를 읽는 방법

오픈소스 project를 잘 분석할 수 있는 Reading Skill

2021 오픈소스 컨트리뷰션 아카데미arrow-up-right의 오픈소스 101 교육을 듣고 정리한 내용입니다.

1. 해당 오픈소스에서 누가 제일 개발을 많이 할까?

오픈소스 프로젝트에서 Git은 단순한 프로젝트 버전관리 도구가 아니다. 협업의 관점에서 오픈소스를 해석하고 관리할 줄 알아야 한다.

git shortlog -sn | nl

     1      77  Soumith Chintala
     2      63  Bryan Marcus McCann
     3      34  Adam Lerer
     4      23  soumith
     5      20  Rohan Varma
     ...
  • nl 명령은 파일의 line number 명시

git shortlog -sn -- mnist/ | nl
  • ( 예제 코드에서는 -- mnist 폴더 )특정 폴더, 파일을 기준으로 기여 내역을 확인할 수 있다.

  • 보통 오픈소스 개발을 할 때는 특정 파트에 집중하기 때문에, 폴더 별로 기여자 혹은 기여 내용을 확인할 줄 알아야한다.

  • 즉, 프로젝트의 owner 보다, 내가 수정하고 싶은 부분의 가장 큰 기여자에게 도움을 요청하는 것이 더 좋을 수 있다.

    • 오너는 바쁨...

2. 전체 소스파일 수정내역(commit) 확인

  • wc -l 명령은 (파일) 라인수 개수를 측정한다.

    • 총 commit 개수를 확인할 때 사용

3. 특정 commit의 자세한 내용 확인

  • commit ID 란?

    • 6c8e2ba 가 commit의 아이디이다.

  • author, date, commit message, diff 내역 등을 확인할 수 있다.

  • 이 commit 에서는 몇 개의 파일을 수정했을까?

    • grep "diff" 로 어떤 파일들을 확인했는지 잡아서 확인할 수 있다.

4. 특정 소스파일 기준 commit 리스트 확인

  • -- 폴더/, 파일

  • shortlog, --no-merges 등 옵션들과 섞어서 사용해보자.

5. 특정 날짜 기준 commit 리스트 확인

  • wc -l 옵션을 활용하면?

  • 특정 기간의 커밋 리스트와 그 개수를 확인할 수 있으면 프로젝트 진행결과를 해석하고 통계 내기 용이함.

6. Merge commit 이란?

  • 다른 기여자의 커밋이 master에 병합되었음을 알려주는 커밋.

  • 머지 커밋에서는 소스의 수정내역은 없음을 확인하자.

  • --no-merges 옵션을 추가하면 머지커밋을 제외하고 커밋 내역을 확인할 수 있다.

7. 과거순으로 소스파일 commit 내역 확인

최초 커밋을 알고 싶다면?

  • reverse 옵션은 역순으로 commit log를 정렬해준다.

Last updated

Was this helpful?