[Git] git branch 협업 가이드 (fork, upstream, origin, 팀플할때)

이혜지·2022년 2월 7일
5

⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️

내가 다른 사람의 레포를 포크해왔을 때에 upstream은 일반적으로 오리지널 레포(다른 사람의 레포)를 의미한다.

한편 origin은 내 포크를 의미한다.
레포가 클론될 때에 디폴트 리모트는 origin이라고 불린다.

upstream : 오리지널 레포 !!! ( 다른사람의 레포 )

origin : 내가 포크해온 레포 !!!!

0. 작업할 레포를 fork 해온후, clone 한다.

clone 받아와서 작업 브랜치를 생성한 후, 그곳에서 작업한다

git branch test git checkout test

⭐️제일 중요한거 여기만 보면 됨

1. 기능 구현 후 add, commit

기능 구현을 완료한 후 로컬 저장소에 변경된 부분을 반영하기 위해 add, commit 명령을 사용합니다.

git status // 변경된 파일 확인 git add -A(또는 .) // 변경된 전체 파일을 한번에 반영 git commit -m "메시지" // 작업한 내용을 메시지에 기록

2. 본인 원격 저장소에 올리기

로컬에서 commit 명령을 실행하면 로컬 저장소에만 반영되고, 원격 github.com의 저장소에는 반영되지 않습니다.github.com의 저장소에도 동일하게 반영하기 위해 push 명령어를 사용합니다.

git push origin 브랜치이름 ex) git push origin test

3. github 서비스에서 Pull Request를 보낸다.

Pull Request는 github에서 제공하는 기능으로 코드리뷰 요청을 보낼 때 사용합니다.

Pull Request는 original 저장소(woowacourse의 저장소)의 main 브랜치와 앞 단계에서 생성한 브랜치 이름(앞 단계의 예에서는 test)을 기준으로 합니다.

ex) 작업을 진행한 내아이디/java test 브랜치 => woowacourse/java 브랜치로 Pull Request를 보낸다.

4. origin 에서 풀리퀘를 보낸 후 작업한 브랜치를 삭제한다. (로컬과 origin 둘다)

Pull Request를 보낸 후에는 upstream에 적용이 되었으니, 내가 작업한 브랜치를 origin과 로컬(remote)에서 삭제해줍니다.

ex) git checkout develop -> git branch -d test

5. 내가 작업한 브랜치가 아닌 main 브랜치 (ex. develop branch) 에는 내가 작업한게 적용이 되어있지 않으니, origin 레포에서 fetch를 진행합니다.

내가 작업한 test 브랜치를 풀리퀘를 보내고 삭제했으니, 막상 로컬에는 적용이 되어있지 않은 상태입니다.

6. 내 로컬에서 pull을 받아줍니다. git pull origin develop

origin에서 fetch를 받았으니, 로컬에 있는 remote 에 pull을 받아 적용해줍니다.

ex) git pull origin develop

7. 다시 작업할때 브랜치를 생성하여 작업 브랜치에서 진행하고 1번부터 다시 진행하면 됩니다.

다시 작업할때 작업 브랜치를 생성하여 그곳에서 작업한 후, 1번부터 다시 진행하면 됩니다.

ex) git branch test -> git checkout test

profile
공유 문화를 지향하는 개발자입니다.

0개의 댓글