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) 요청
: 요청 이후 원본 레포지터리의 관리자가 병합 수행
'Devops > Git' 카테고리의 다른 글
삭제된 git stash 복구하기 (0) | 2023.01.03 |
---|---|
.git ignore가 적용되지 않을 때 해결 방법 (0) | 2022.07.30 |
git remote branch 그대로 가져오는 방법 (0) | 2022.02.26 |
깃허브 .gitignore에 등록된 파일이 적용이 안될 때 (0) | 2021.11.28 |
github와 slack 연동 (0) | 2021.11.28 |