git을 어영부영 사용하다가 이번 기회에 개념과 원리를 정리하였다.
git(분산관리시스템)
git init
: 로컬 Repository(저장소) 생성
git status
: 현재 git 로컬 Repository 상태 확인
git add <추가할 파일>
: commit에 반영할 파일 지정 ( unstaged -> staged)
<추가할 파일>에 .(점)을 사용하면 전부다 의미 ex) git add .
git commit -m "커밋메시지"
: 새로운 메시지와 함께 commit 생성 (like 현재 상태 스냅샷)
git log
: commit 기록 확인하기
git branch <branch 이름>
: 해당 이름의 branch(가지치기) 생성
git branch -v
: 현재 branch 상태 확인 (기본이 master 상태)
git checkout <branch 이름>
: 해당 branch로 전환
cat <파일 이름>
: 파일내용 보여줌.
git merge <branch 이름>
: 현재 작업 중인 branch를 해당 branch에 병합 (Fast forward 방식)
git branch -d <branch 이름>
: 해당 branch Delete(삭제)
git branch -M <branch 이름>
: 현재 branch의 이름을 해당 branch로 변경
git branch -M main
: git의 기본 branch는 master이지만, github에 push하기 전에는 branch 이름을 main으로 바꿔줘야 한다.
github(원격저장소)
git remote add <별칭> <원격저장소 주소>
: 로컬 저장소와 원격저장소를 연결해준다.
- <별칭> : 원격저장소의 별칭으로써, 보통 origin
- <원격저장소 주소> : github사이트에서 code버튼 -> 주소 copy
git remote -v
: 현재 연결된 원격저장소 상태 (별칭, 주소)
git push <원격저장소의 별칭> <branch 이름>
: 해당 원격저장소에 branch로 로컬로 작업했던 committed respository를 원격으로 쏴준다.
- <원격저장소의 별칭> : 별일없으면 보통 origin
- <branch 이름> : 별일없으면 보통 main
- 따라서 보통 git push origin main
과제제출
1. github 사이트에서 해당 주소를 "Fork"하면 과제가 있는 원격저장소를 나의 원격저장소로 가져온다.
git clone <Fork된 나의 원격저장소의 주소> <file을 담을 폴더이름>
: 원격저장소에 있는 내용을 로컬저장소로 다운로드 즉 가져온다.
- <가져온 나의 원격저장소의 주소> : code주소 복사
- <file을 담을 폴더이름> : 넣지 않으면 default 값은 해당 원격저장소의 이름
git branch weekN_name
: 나의 작업 branch(가지) 만들기
(단, 이미 week3라는 branch가 있으면 week3/~ 는 중복되어 쓸 수 없다.
git checkout weekN_name
: 해당 branch(가지)로 작업
2. git status -> git add . -> git commit -m "done" -> git push origin weekN_name
3. github에서 나의 해당 원격저장소로 가서 작업한 branch 이름으로 "Pull request"버튼
- 제목, 내용 기재(Mark down 형식)
- base <- compare : 나의 로컬 branch
- "create pull request"버튼 누르면 제출 완료 (슬랙으로 #깃헙리뷰 메시지가 뜬다)