원격 저장소(Remote repository)
원격 저장소 = 인터넷이나 네트워크 어딘가에 존재하는 저장소
원격 저장소 확인
원격 저장소를 clone하면 origin
이름으로 원격 저장소가 자동으로 등록된다.
원격 저장소의 이름을 확인한다.
$ git remote
원격 저장소의 이름과 URL을 함께 확인한다.
$ git remote -v
원격 저장소 추가
$ git remote add [원격 저장소 이름] [URL]
명령으로 아래는 예시이다.
$ git remote add pb https://github.com/paulboone/ticgit
위와 같이 등록하고 실제로 로컬 저장소에는 없지만 pb
원격 저장소에 있는 것을 가져오려면 아래와 같이 명령한다.
$ git fetch pb
git fetch
명령은 원격 저장소의 데이터를 모두 로컬로 가져오지만 자동으로 Merge하지는 않는다.
원격 저장소에 Push하기
git push [원격 저장소 이름] [브랜치 이름]
명령으로 Push할 수 있다.
origin
원격 저장소의 master
브랜치에 Push한다.
$ git push origin master
원격 저장소에 현재 로컬 브랜치와 동일한 이름의 브랜치에 Push한다. 원격 저장소의 다른 브랜치에 잘못 커밋하는 실수를 줄여줄 수 있다.
$ git push origin HEAD
원격 저장소 이름을 바꾸거나 삭제하기
원격 저장소의 이름을 변경할 수 있다.
$ git remote rename pb paul
원격 저장소를 삭제할 수 있다.
$ git remote rm paul
원격 저장소 이름 규칙
전형적인 원격 저장소의 이름이다.
origin
: Github 내 저장소의 이름(Fork한 경우 포함)upstream
: Fork한 경우 원본 프로젝트의 저장소의 이름(디폴트 이름은 아니지만 통상적인 이름)
참고로 master
는 브랜치 이름이다.
master
:git init
으로 저장소 생성 시 디폴트 브랜치 이름
브랜치
브랜치 만들기
git branch [브랜치 이름]
명령으로 아래와 같이 testing
브랜치를 만든다.
$ git branch testing
브랜치 변경
git checkout
명령어로 작업하려는 testing
브랜치로 이동할 수 있다.
$ git checkout testing
브랜치를 이동(변경)하면 작업 디렉토리의 파일 내용도 변경된다.
git checkout -b
명령어로 두 번 입력하지 않고 한 번에 브랜치를 만들고 바로 이동할 수도 있다.
$ git checkout -b testing
로컬 브랜치를 원격 저장소에 Push하기
git push -u origin [브랜치 이름]
명령으로 로컬 브랜치를 원격 저장소에도 반영할 수 있다.
$ git push -u origin testing
Merge
이슈 처리를 위해 브랜치 적용 시나리오
어떤 이슈 처리를 위한 issue53
토픽 브랜치를 만든다.
$ git checkout -b issue53
소스파일을 수정한다.
$ vim index.html
수정한 파일을 로컬 저장소로 커밋한다.
$ git commit -am 'fixed the broken email address'
master
브랜치로 다시 이동한다.
$ git checkout master
issue53
브랜치의 내용을 master
브랜치에 반영하여 합친다.
$ git merge issue53
브랜치가 불필요해지면 삭제한다.
$ git branch -d issue53