[OSS 2022]내가 보려고 정리한 GitHub 사용법 2

OOSUlZ·2022년 7월 19일
0
post-thumbnail

commit / merge / branch / fetch

stash / push / PR(pull-request)

**이 시리즈만 보면 오픈소스 프로젝트 진행하는데 큰 문제 없을 것 같습니다 질문은 댓글로 꼭 남겨주세요!**

#1 commit

전 게시물에서 프로젝트를 clone 하는 과정 까지 다루었다.
clone한 프로젝트에서 각자 나름의 작업과정을 거치면, 소스파일이 변경 될 것이다.
이 변경된 소스파일의 내용을 명시하는 것이 바로 commit 이다.

fork 하는 이유 = 소스 다운받기
clone 하는 이유 = fork 하는 이유(소스 다운) + 이력도 같이 받기

우선 commit을 하는 방법을 알아 보기 전,
이 프로젝트가 어떻게 진행되는지 명령어를 통해 알아보는 방법을 소개하겠다

○ 누가 제일 많이 개발하는 지 알아보는 방법


$ git shortlog -sn | nl 을 시행하면 다음과 같이 순위와 commit 개수 , commit 한 사람이 출력된다.

○ 전체 소스파일 수정 내역(commit)개수 알아보기


실행시, 전체 commit의 개수만 출력된다 ex) 307

○ 소스파일 수정내역(commit)의 ID와 commit message 확인

좌측의 7자리 숫자와 영문자가 commit id이고 고유한 값을 가지고 있다!
그리고 ID 우측에 적힌 내용은 소스 수정의 이유를 개발자가 간략히 적은 것이다.

★★★Commit Message 작성요령★★★
fix => 잘못된 것을 고친것
└ ex) 오탈자 수정 / 잘못된 소스 수정
improve => 원래는 잘되던건데 개선한것
└ ex) 특정 기능 수행시간 10초 -> 5초
add => 없는 기능 옵션 추가할때
└ 단순한 함수/클래스 추가의 경우 해당 X!
implement => add 랑 비슷한 의미
└ 구현
support => 지원기기 / os 확대
└ 윈도우 -> 리눅스에서도 가능하게
작성 예시 = fix warnings and failures

○ 소스파일 수정내역(commit)의 세부 변동사항 확인


기존 코드 빨간색
변경된 코드녹색 으로 출력 된다

○ merge commit



merge commit의 내용은 존재하지 않는다
수정사항이 없으므로 commit의 개수를 셀 때 빼고 세는 경우도 있다

○ 특정 소스코드 기준 commit 확인

선택한 폴더를 기준으로 commit list가 출력된다

○ 옛날 commit 부터 확인(역순)


첫 commit이 무엇인지 살펴볼때 사용하면 유용하다

○ commit하는 방법

(1) 수정내역(commit)만들기 전 준비(add)

(2) 수정내역(commit) 생성

(3) 현재 소스파일 상태(status) 확인

#2 branch / push / pull

branch = 독립적인 작업 공간을 생성 (같은 파일 다른 세상)
push = 나의 프로젝트에 commit 업로드
PR = 팀프로젝트에 내가 만든 commit 제출

○ branch 생성방법


체크아웃(checkout)이란, 내가 사용할 브랜치를 지정(생성/전환)하는 것
checkout 명령에 -b 옵션을 넣으면
브랜치 작성과 체크아웃을 한꺼번에 실행가능

master branch에는 hi.txt파일이 없지만, fix-mnist branch에는 hi.txt가 존재한다!

○ branch 삭제방법

○ How to push (commit을 원격 repository에 올리기)

○ How to pull-request (push한 commit을 공식 repository에 올리기)


○ stash를 이용해 수정 내용 잠시 저장해두기

checkout vs stash
파일 복구하기(checkout) vs 수정내용 저장(stash)

○유용한 명령어
$ git checkout -- mnist/main.py main.py 되돌리기
$ git checkout -- ./ 이것저것 건드린거 전부 되돌리기

○ commit을 준비하는 add 명령 취소하기 (reset)

○ 소스 수정내역(commit) 삭제하기 (reset)

○ commit 수정(amend)하고 수정내역 전후 비교하기

commit을 추가할 때 쓸모 없는 거 추가하면 별로 좋지 않음
만약 commit이 수정사항이 생겼을때 기존의 commit을 수정하는 방법 > --amend
ㄴ 단 , 최신 commit을 수정함 (예전 commit 수정하려면 명령어 추가 필요)

profile
천천히,꾸준하게

0개의 댓글