오픈소스 컨트리뷰션 아카데미에서 진행된 Git/Github 기본 실습 강의를 정리한 내용입니다.
오픈소스 기여 과정 개괄
개발 환경 구축(컨테이너)
fork하여 프로젝트 복사
clone하여 소스 다운로드
프로젝트 개발 현황 파악/분석 → Reading Skills 필요
history를 파악하는 것이 중요! → Reading Skills
소스 수정 → commit하여 히스토리 저장
수정 내용 제출 → PR!
Container
개발 환경 구축을 간단하게 도와줌
독립된 리눅스 환경 구성
개발 환경을 간단하게 구성
ex) pytorch, tensorflow
Dockerfile → image → Container
Git?
이력 관리(수단), 협업(목적)
Push
나의 프로젝트에 commit을 업로드할 때 사용
Commit
소스 파일의 변화를 기록 가능
log 메시지를 함께 작성
메시지를 잘 작성하는 것이 중요!
소스 수정의 이유 작성 → 구체적인 단어로 표현
협업 하기 때문에!
설명할 수 있는 이유를 고민!
오답을 피하는 방향으로
Fix : 잘못된 것을 고친 것
Improve : 원래도 작동하던 것을 더 좋게 개선한 것
-> ex) 10초 -> 5초로 개선
Add : 없는 기능, 옵션 추가할 때 사용
-> 굳이 써야되는 지 꼭 확인 후 사용
Implement : 미리 상의된 내용을 구현한 경우
-> 보통 누가 개발할 지 미리 상의돼 있음
Support : 윈도우에서만 되던 것을 리눅스에서도 가능하게
Correct typo : 수정
→ 팀 프로젝트에 내가 만든 commit을 최종 제출할 때 PR!
PR
github에서 tokens를 받아서 해당 ID 활용
Rebase
Base? 내가 fork해올 당시의 기준 commit
최신 commit들을 반영해서 base를 변경하는 작업이 바로 Rebase!
Fork
프로젝트 복사
바로 main rep를 수정할 권한은 없기 때문에 repo를 복사해오고 싶을 때 활용
후에 PR에 활용
linux 기본 명령어
폴더, 파일 다루기
ls : 폴더 안을 확인
mv : 파일/폴더명 변경, 파일 이동
cd : change directory
pwd : print working directory
clear : bash log 삭제
:q : 빠져나올 수 있음
터미널 글씨 키우고 줄이기
ctrl +
ctrl -
git status
git으로 관리되고 있는지 확인
root@goorm:/workspace/pytorch/examples(master)# git status