Git 정리 - 협업 - fetch, pull request

'Git' 시리즈Git 정리 - 협업 - fetch, pull request

mildsalmon

흔치않고, 진귀하다.

Sign in to view email

원격 브랜치 정보 가져오기 (git fetch)

페치(fetch)는 '불러오다, 가져오다'
git fetch는 원격 저장소의 정보를 가져오는 기능이 있다.
pull이 원격 저장소의 커밋을 가져와서 무조건 지역 저장소와 합친다면,
fetch는 원격 브랜치에 어떤 변화가 있는지 그 정보만 가져온다.

깃허브에서 파일을 하나 추가했다.

fetch 명령으로 원격 저장소의 정보를 가져오자.

git fetch
git checkout FETCH_HEAD

위 명령어를 입력하고 FETCH_HEAD 브랜치로 이동해서,
변경된 파일을 찾아서 확인하고 merge하면 된다.

즉. git pull 명령은 git fetch 명령과 git merge FETCH_HEAD 명령 두 개를 합친 것과 같다.

협업의 기본

공동 작업자 추가하기

공동 작업을 한다면 공동 작업자에게 커밋을 올릴 권한을 줘야한다.

협업을 한다면 반드시 작업하기 전에 원격 저장소의 최신 커밋을 pull한 다음에 자신의 커밋을 push해야한다.
깃 허브에 저장된 최신 커밋이 로컬 저장소에 없을 경우 아래와 같은 에러가 뜬다.

브랜치 푸시

체크아웃으로 브랜치 생성과 이동을 동시에 할 수 있다.

git checkout -b (브랜치 이름)

git push --set-upstream origin (브랜치 이름)
git push origin (브랜치 이름)

풀 리퀘스트로 푸시한 브랜치 병합

푸시한 브랜치는 풀 리퀘스트(pull request)를 통해 병합해야 원격 저장소에 반영된다.

아래 create pull request를 누른다.
그리고 풀 리퀘스트 메시지를 작성하고 create pull request를 누르면 협업 중인 저장소에 풀 리퀘스트가 전송된다.

협업 중인 원격 저장소에 등록된 풀 리퀘스트는 공동 작업자 중 누구나 살펴보고 병합할 수 있다.
저장소 위쪽에 Pull requests를 누르면 등록된 풀 리퀘스트 목록이 나온다.
등록된 풀 리퀘스트를 누르면 아래와 같이 나온다.
여기서 풀 리퀘스트를 남긴 사람과 메시지를 주고 받을 수 있다.
Merge pull request를 누르면 병합된다.
Confirm merge를 누르면 브랜치 병합이 끝난다.

브랜치가 병합되면 브랜치에 있던 파일이 마스터 브랜치에 나온다.

브랜치가 병합된 상태라면 merged라고 표시되어 있다.
공동 작업자 중 누가 브랜치를 병합했는지도 알 수 있다.

깃허브에서 협업할 때는 보통 작업자마다 브랜치를 만들어서 진행한다.
작업 중간 중간 풀 리퀘스트를 보내서 master 브랜치에 병합한다.
그래서 깃허브로 협업할 때는 다른 작업자의 변경 내용을 바로 반영하기 위해 항상 풀(pull)부터 한 다음 자신의 작업을 진행하는 것이 좋다.


'Git' 시리즈
Git에 대해 공부하고, 정리한 시리즈
작성된 댓글이 없습니다!
로그인된 사용자만 댓글을 작성할 수 있습니다.