내가 작업한 코드가 있으니 내 브랜치를 당겨 검토 후 병합해주세요 (^0^)/
에서 branch가 보이는 경우는 그 저장소만의 기능이다
- Push로 협업했을때, 다른 사람의 commit을 볼 일이 많지 않고, master branch와 merge할 때서야 보게되는데, Pull Request는 당장 merge하지 않는다는 규칙이 Pull Request를 보고, 코드에 신경쓰게되고 어떤 작업이 언제 적용되었는지 알 수 있다. 오히려 당황스러운 코드충돌을 줄일 수 있다.
방법
1. Fork
- Upstream Repository를 자신의 저장소로 Fork(Origin Repository)한다.
2. Clone, remote 설정
- fork로 생성한 Repository에서
clone or download
버튼을 누르고 표시되는 URL을 복사한다.
$ git clone (복사한 URL)
3. 내 컴퓨터에 생성된 로컬저장소에 원격저장소를 추가한다.
- Clone했던 원본프로젝트저장소(origin)를 원격저장소(github)로 추가
$ git remote add post(별명) (복사한 URL)
fork, clone한 프로젝트는 origin이라는 별명이 기본으로 추가되어있다. 때문에 따로 설정해주지 않아도 되고, 원격저장소로 추가할때에는 별명을 설정해주어야함.
- 원격저장소 설정 현황 확인하는 명령어
$ git remote -v
4. branch 생성
- 내 컴퓨터의 Clone프로젝트 저장소(origin)에서 코드를 수정하거나 추가하는 작업은 branch를 만들어서 진행한다.
$ git checkout -b develop
- develop branch 생성
$ git branch
* develop
master
- 생성된 2개의 branch를 확인할 수 있다.
5. 수정 작업 후 add, commit, push
- editor를 통하여 코드를 수정한다.
- 작업이 완료되면 Github Repository(origin)에 add, commit, push한다.
$ git push origin develop
- push할때 develop 브랜치의 수정내역을 origin으로 푸시한다.
6. Pull Request 생성
- push 완료후 자신의 github 저장소에서
Compare & pull request
버튼이 활성화 되어있는걸 확인할 수 있다.
- 버튼을 선택해 Pull Request를 생성한다.
7. Merge Pull Request
- PR을 받은 관리자는 코드 변경내역을 환인하고 Merge여부를 결정하게 된다.
8. Merge 이후 동기화 및 branch 삭제
- Merge가 완료되면 로컬 코드와 원본의 코드를 병합하고 최신의 상태를 유지하게 위해 동기화한다.
- upstream 확인
$ git remote -v
- upstream 추가
$ git remote add upstream
$ git fetch upstream
$ git merge upstream/master
$ git branch -d develop
-
위 명령어를 통해 동기화하고, 브랜치를 삭제한다.
-
나중에 추가적으로 작업이 또 필요하다면, 동기화를 한 뒤 3-7번을 반복하면서 작업하면 된다!
개인적으로 공부하고 이해한 내용이므로, 틀린 부분이 있을 수 있으니 많은 지적 바랍니다 :)
깔-꼼