Git Session

Jungyub Song·2020년 5월 31일
0

1) 기본적인 PR 보내기

이번 주에는 팀 프로젝트 시 주로 이용하는 실용적인 git session이 있었고, 이를 정리하고자 한다.
(git init이나 react 초기세팅은 마쳤다는 가정 하에 PR을 날리고 conflict 상황에서 해결하는 방법에 대해 이야기하려 한다.)

  • Local: 내 컴퓨터
  • Remote: Github

우선 처음에 github repo에서 master branch를 clone 받게 되면 자동으로 내 local master branch에도 받아진다.
여기서 git branch branch명을 입력하여 내가 원하는 branch를 만들고 git checkout branch명을 통해 해당 branch로 이동하여 작업을 진행한다.
작업 후 git add .(임시저장) / git commit / git push origin branch명을 하면 repo에도 해당 branch명의 branch가 생성된다.
해당 repo에 생성된 repo에 가서 PR을 보내면 기본적인 PR 보내는 과정이 마무리되게 된다.

2) Merge를 통한 최신 master branch update

만약 팀원 중 한 명의 PR이 master 권한을 가진 사람에 의해 merge가 된다면 repo의 master branch가 업데이트되게 된다.
이를 우리의 local master에도 업데이트 시켜주기 위해서 git checkout master를 통해 master로 이동하고 git pull origin master를 하여 remote에 있는 최신 master를 불러오면 된다.

3) conflict 시 문제 해결

PR을 보내고 merge가 되기를 기다리고 뒤늦게 conflict를 발견하여 해결하는 것은 효율적이지 않다.
때문에 아래와 같이 사전에 내 local에서 미리 conflict를 해결하고 PR을 보내는 방법을 사용하는 것이 좋다.
특정 branch에서 작업 후 add / commit까지 동일하게 마친 후 git checkout master를 통해 master로 돌아와서 git pull origin master를 하게 되면 remote에 있는 최신 master를 받아 올 수 있다.
이 때 다시 내 branch로 이동하여 git merge master를 하게 되면 최신 업데이트한 master를 내 branch와 먼저 merge해볼 수 있다.
여기서 conflict가 나는 것을 미리 확인해볼 수 있으며, 보통 같은 파일의 같은 줄에 있는 코드가 다를 때 conflict가 일어난다. (공용으로 사용하는 Routes.js에서 일어날 확률이 크다.)
conflict를 해결한 후 add / commit / push를 다시 하게 되면 conflict가 해결된 branch 상태로 PR을 보낼 수 있다.
물론 그 사이에 또 다른 팀원의 PR이 먼저 merge된다면 다시 conflict가 일어날 수 있지만, 그 외의 경우에 대해 conflict를 예방할 수 있는 좋은 방법이다.

0개의 댓글