Github는 코드를 안전하게 저장하고 협업을 편리하게 진행하기 위해서 사용한다.
아래는 협업을 위한 깃헙의 간단한 사용방법이다.
팀의 대표자가 프로젝트를 생성
팀의 대표자가 프로젝트를 생성하고 기본적인 설정 틀을 만든 후, 레포지토리를 만들어서 로컬에 작성한 프로젝트와 연결 후 깃헙에 푸시한다.
나머지 팀원들이 git clone 한다.
프로젝트를 삽입하기를 원하는 위치에서 진행한다.
$ git clone <복사한 원격 레포지토리 주소>
각자 기능 개발 시작하기
각자의 branch를 생성 후, 브랜치로 이동한다.
// 브랜치 생성하기
$ git branch <브랜치명>
// 브랜치로 이동하기
$ git checkout <브랜치명>
// -b 는 새로운 브랜치를 생성한다는 의미. 생성과 동시에 이동
$ git checkout -b <브랜치명>
기능 개발 커밋, 푸시하기
기능 개발 후 git add, git commit, git push를 진행한다.
$ git push origin <브랜치명>
PR (Pull Request) 만들기
PR을 생성하여 github repository에서 코드를 최종적으로 합치기 전 (main으로 merge하기 전) 코드를 점검할 수 있으므로 PR 과정을 진행한다.
5-1. 기능 개발 후 해당 브랜치에서 git push 명령어를 입력하고, github repository로 이동하여 compare & pull request 버튼을 클릭한다.
(또는 pull requests 탭을 클릭 후 new pull request를 클릭한다.)
//먼저 pull을 진행
git pull origin dev<브랜치명>
git push --set-upstream origin <브랜치명>
//원격저장소에 생성되거나 업데이트될 브랜치명. 원격에 브랜치명이 없을 경우 자동 생성된다.

5-2. base 브랜치와 compare 브랜치 확인
base 브랜치란 수정된 코드가 합쳐질 최종 브랜치라는 의미이다. compare: feature/login 은 수정된 코드가 있는 브랜치이다. compare라고 되어있는 이유는 base 브랜치인 main과의 비교 대상이기 때문이다. 즉, feature/login(compare) 브랜치에서 수정된 코드를 main(base) 브랜치로 합치기 위한 PR을 생성할 것이라는 뜻이다.

제목 입력 후 create pull request 버튼을 누르면 PR이 생성된다.
5-3. 생성 완료된 PR은 file changed 탭 클릭 후 변경된 코드를 확인 가능하다.


5-4. 문제가 없을 경우 Merge pull request로 병합하기
merge 전 conflict 해결하기
Merge pull request 버튼이 비활성화 된 이뉴는 merge 전에 Conflict가 나서 merge를 할 수 없기 때문이다.
6-1. 개인 브랜치에서 터미널을 통해 메인 코드를 가져온다.
$ git pull origin main
6-2. conflict 난 코드 확인 후 수정한다.
A와 B를 비교하여 수정해준다.
<<<<<<< HEAD
A
======
B
<<<<<<<
6-3. git add, git commit, git push origin <브랜치명> 과정을 다시 진행한다.
6-4. merge pull request 버튼이 활성화 되었으므로 merge 한다.
merge 이후 기능 개발
7-1. 메인 프랜치로 이동 후 코드 확인 후 pull 받기
$ git checkout main
$ git pull origin main
7-2. 새로운 브랜치 만들고 이동 후 기능 개발하기
//이전 브랜치를 삭제(로컬)
git branch 로 확인 후
git branch -d <브랜치명>
//이전 브랜치를 삭제(원격)
git branch -a 로 확인 후
git push origin -d <브랜치명>