: 중앙 원격 저장소(remote repository)를 복제하여 자신의 로컬 저장소(local repository) 생성
- 현재 디렉터리를 빈 Git 저장소로 만들기
$ git init
- 현재 작업 중인 Git 저장소에 중앙 원격 저장소 추가 (이름은 URL 대신 origin으로 사용)
$ git remote add origin [remote repository URL]
- 중앙 원격 저장소(origin)의 master 브랜치 데이터를 로컬에 가져오는 작업
$ git fetch origin master
=> 원격 저장소를 복제한 로컬 저장소 생성 (위 명령을 모두 포함)
$ git clone [remote respository URL]
: 로컬 저장소에서 새로운 브랜치를 생성한 후, 작업을 수행하고 변경 내용을 커밋한다.
- 새로운 브랜치 생성
$ git branch [branch name]
- 브랜치 이동(HEAD 포인터 이동)
$ git checkout [branch name]
=> 브랜치 생성 후, 이동 (위 명령을 모두 포함)
$ git checkout -b [branch-name]
develop
에서 feat/PC-001
로 분기된 계층적 브랜치 구조 만들기$ git checkout develop // develop 브랜치로 이동
$ git branch -b feat/PC-001 // feat 폴더의 PC-001 브랜치 생성 후, 이동
$ git branch // 로컬 브랜치 목록
$ git branch -r // 원격 브랜치 목록
$ git branch -a // 모든 브랜치 목록
: 로컬 저장소에서 작업한 새로운 기능의 브랜치를 중앙 원격 저장소에 푸시한다.
1-a. 변경된 모든 파일을 스테이징 영역에 추가
$ git add .
1-b. 변경된 특정 파일을 스테이징 영역에 추가
$ git add [file-name]
- 로컬 저장소에 변경사항 반영하기(commit) (staging -> local)
$ git commit -m "commit message"
=> 변경된 모든 내용을 로컬 저장소에 반영하기(commit) (위 명령을 모두 포함)
$ git commit -a -m "commit message"
- 원격 저장소에 커밋 공유하기 (local -> remote)
(origin에 동일한 이름의 브랜치 복제)$ git push origin feat/PC-001
+) git status
, git log
를 통해 확인하는 습관 중요
: 원격 저장소에 푸시한 작업한 브랜치를 origin
에 병합(merge)을 요청하는 것
merge
, rebase
, ...): 다른 개발자에 의해 변경된 원격 저장소의 코드 베이스를 동기화 한다.
1. master(develop) 브랜치로 이동
$ git checkout develop
2. 원격 저장소의 변경사항 반영하기
2-1. pull 이용: 변경사항 가져온 후, 병합
$ git pull origin develop
2-2. fetch 이용: 변경사항 가져오기만, 병합은 별도 처리
-pull
을 통한 자동 병합 대신,fetch
후 수동 병합 사용 권장 !$ git fetch --all // 원격 저장소로부터 변경사항 가져오기 $ git rebase origin/develop // rebase 방식으로 병합하기