320x100
320x100

fork

: 다른 사람의 repository에서 수정하거나 추가 기능을 넣고 싶을때 해당 repository를 

  자신의 repository로 그대로 복제하는 기능

: fork한 repository는 원본 repository와 연결 되어 있어 원본 repository의 변화 사항을

  자신의 forked repository에 반영할 수 있음

 > fetch 혹은 rebase

 

 

 

1. 원본 프로젝트 fork

: github 혹은 gitlab의 레포지터리에서 fork 버튼을 눌러 새로운 프로젝트 생성

 

 

2. upstream remote 생성

- fork한 레포지터리를 로컬에 다운로드

: git clone fork한_레포지터리.git

 

- 원본 레포지터리와 연결을 위해 레포지터리의 리모트 확인

: git remote -v

 

※ reomote

: 원격 저장소의 url에 대한 별칭

: 일반적으로 origin은 로컬에 다운로드한 원격 레포지터리를 뜻하고

  upstream은 fork한 원본 레포지터리를 뜻함

 

- 원본 레포지터리에 대한 remote 생성

: git remote add upstream 원본_레포지터리_URL

 

- 정상적인 원본 remote 생성 확인

: git remote -v

 

 

3. 원본 레포지터리의 내용을 작업 레포지터리에 반영

- 작업 레포지터리에 원본 레포지터리의 브랜치 등 현황 반영

: git fetch --all

 

- 작업 레포지터리에 원본 레포지터리의 브랜치 커밋 pull

: git pull upstream master

 > master 뿐만 아니라 다른 브랜치도 가능

 

 

 

 

4. 작업 레포지터리의 내용을 원본 레포지터리에 push

- 작업중인 브랜치로 checkout

: git checkout 작업_브랜치

 

- 원본 레포지터리에 merge (fast-forward)

: git merge upstreammaster

 > 작업 레포지터리의 commit을 원본 레포지터리에 병합

 

※ fast-forward

: 새 커밋이 만들어지지 않고 기존 커밋에 합쳐지는(병합되는) merge

 

- merge request 혹은 pull request

: github 혹은 gitlab UI에서 merge request (gitlab) / pull request (github) 요청

: 요청 이후 원본 레포지터리의 관리자가 병합 수행

 

300x250
728x90