[Git] Github으로 협업하기 (팀프로젝트 관리)

Jungmin Lee·2021년 5월 19일
1

git

목록 보기
2/2

팀 프로젝트 시 Git 사용법

  1. 먼저 Upstream 레포지토리를 나의 레포지토리로 fork를 한 후 나의 레포지토리에 clone을 한다.
  2. clone이 완료 되었으면 master 브랜치에서 dev 브랜치로 이동해 준다.
    Checkout dev 
    (master => dev이동)
  3. dev로 이동 후 새로운 브랜치를 생성하고 그 브랜치로 이동한다.
    Checkout -b feature/1/기능 내용 
    (-b는 브랜치 생성 / checkout 브랜치 이동)
  4. 생성된 브랜치에서 코드 작성이 완료 되면 본인 레포로 add(파일)//push//commit 해준다.
    반드시! 본인 repository로 push를 해주어야한다!
     git add .   
      git commit -m 'completed #1'
      git push origin feature/1/기능
  5. push가 완료 되었다면 Origin에서 Upstream으로 pull request (PR) 작업을 해준다.
  6. pull request (PR)가 되었다면 merge를 해준다.
    merge가 정상적으로 됐다면 잘 병합된 것이므로 pull을 받은 후 다음 브랜치를 따서 작업하면 된다.
    터미널로 돌아와 dev브랜치로 이동한 후 최신 버전으로 업데이트를 하고 새로운 브랜치를 따서 작업하면 된다.
    git pull upstream dev
    (최신버전으로 업데이트) 

Merge 충돌 발생 시 처리법

팀원들이 pull을 받고 branch를 각자 1번,2번을 따서 작성 하는 중 1번이 먼저 코드가 완성되어 merge를 하게되면 2번이 merge를 시도할때 conflict(충돌)가 발생할 수 있다.
물론 merge를 먼저 했다고 다 conflict가 일어나는 것은 아니라, 내가 pull origin dev를 한 후에 다른 팀원이 나와 같은 라인을 수정하고, 그 수정한 내역을 dev로 합쳤을때(merge) conflict가 발생한다.

이런 경우에는 충돌된 코드를 수정해줘야 pull request가 성공한다.

그래서 만약 1번이 merge를 먼저 한 상황이라면 2번은 merge 하기 전에 dev branch로 이동해서 1번이 업데이트한 것을 pull 받고 다시 2번 branch로 이동해서 dev를 merge해서 최신으로 업데이트해준다.
여기서 예상햇던 충돌이 발생하고 수정 후 merge를 하면 된다.

(dev) git checkout feature/2/             
	# 내 작업 브랜치로 이동

(feature/1) git merge dev                
# 최신으로 업데이트 된 dev 브랜치를 내 작업 브랜치와 merge
Auto-merging index.js
CONFLICT (content): Merge conflict in index.js         # 충돌된 파일 이름은 index.js
Automatic merge failed; fix conflicts and then commit the result.

이렇게 충돌이 나면 index.js 파일에 들어가서 충돌부분을 수정해주고 다시 git add, commit, push, pull request,merge해주면 된다.

profile
Front-end developer who never gives up.

0개의 댓글