1. Fork
먼저 타겟 프로젝트의 레파지토리를 내 레파지토리로 Fork 한다.
2. clone
내 로컬 PC에 Fork 떠온 레파지토리를 clone 한다.
git clone (복사한 URL)
그리고 보통 원본 소스코드가 있는 곳의 위치를 upstream 이라고 하는데, 이 이름으로도 위치를 등록해 줘야 한다.
git remote add upstream (원본 소스의 URL)
추후 뒤에서 사용함.
3. 브랜치 생성
코드를 추가하는 작업은 branch를 만들어서 진행한다.
git checkout -b (생성할 브랜치 명)
4. 코드 수정 작업 후 add, commit, push
코드를 수정하고 자신의 레파지토리에 add commit push 한다.
여기서 유의할 점은 push 진행할 때 자신의 브랜치 명을 명시해야 함.
git push origin ab_week1
5. Pull Request 생성
push 완료 후 본인 계정 깃헙 저장소에 접속하면 Compare & pull request 버튼이 활성화 되어 있다.
해당 버튼을 클릭하여 메시지를 작성하고 PR을 날린다.
6. Merge Pull Request
PR을 받는 원본 저장소 관리자는 코드 변경내용을 확인하고 merge 여부를 결정한다.
Merge 이후에 로컬코드와 원본 저장소의 코드를 동기화 하고작업하던 자신의 로컬 branch는 삭제한다.
먼저 원본 저장소와 코드를 동기화 하기 전에 알아둬야 할 것이 있다.원본 저장소를 fork 하고, 수정해서 PR 날리고 Merge 까지 되었다. 하지만 며칠 뒤에 또 수정할 것이나 반영할 것이 생겼을 경우가 문제다.
왜냐하면 원본 소스는 또 다른 개발자들에 의해 Merge된 항목들이 많을 것이다.하지만 내가 fork 해 놓은 브랜치는 예전 그대로의 상태이다.이 상태에서 소스 수정을하고 PR 날리면 conflict 의 늪에 빠진다고 한다....
위에서 원본 저장소를 upstream 로 등록하였는데 이것을 사용해서 동기화를 해야 한다.물론 fork 된 레파지토리를 날려버리고 새로 해도 좋다.
git checkout main
으로 먼저 메인 브랜치로 체크아웃 한다.
git fetch upstream
명령어로 원본 소스코드의 내용을 로컬에 내려 받는다.git merge upstream/main 혹은 upstream/master 내려받은 소스 코드를 실제 내 레파지토리에 merge 시켜 줘야 한다.
이렇게 동기화가 된 이후 작업했던 브랜치를 삭제 해 준다.
git branch -d ab_week1
참조
[GitHub] fork repository 최신 버전으로 유지하기
# TL;DR git remote add upstream ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git git fetch upstream git merge upstream/master # 들어가며 GitHub 에서 좋은 프로젝트를 발견했고 유용하게 사용을 하다보면 Contribut..
jybaek.tistory.com
Git - Pull Request 활용하기
Git 기초 공부하기 목차 (1) 2020/02/29 - [Git] - Visual Studio Code에 Github 연동하기 (2) 2020/04/16 - [Git] - Git 이란? (3) 2020/04/17 - [Git] - Git 설치 및 커멘드 사용법 (4) 2020/04/18 - [Git] - G..
dev-youngjun.tistory.com
댓글