언어의 기초/자바스크립트(Javascript)

git workflow & conflict 해결

지에스정 2020. 4. 29. 23:28

 

이전에 git 과 github 사용 법에 대해 배워왔다.

 

이번에는 pair programming을 위한 workflow를 배워보도록 하자.

 

그전에 우선 git workflow가 어떻게 이루어지는 지를 알아야 한다.

 


 

 

 

git workflow

 

github에서 fork를 하고 my repo에서 git clone을 하게 되면 local로 작업을 불러들일 수 있다.

 

working directory에서 코딩작읍을 한 이후 git add를 통해 staging area에 저장되고

 

git commit을 하여 해당 작업에 대한 메세지를 넣어 local repo로 옮겨진다.

 

이상태에서 git push origin master를 입력하여 my repo로 넘어간다.

 

새로운 브랜치를 만들어 진행하기 위해서는 git checkout newbranch(branch를 임의로 지정하면 된다) 을 입력하여 진행하면 된다.

 

이 상태를 수정, 반복하면서 코딩작업을 진행하여 완성된 작업물에 대해 pull request를 하여 넘어가게 된다.

 

 

하지만 코딩 작업은 혼자만 진행하는 것이 아니다.

 

pair programming을 하게 된다면 어떻게 pair 와 remote repo를 연결하여 작업을 진행할 수 있을까?

 

 

pair programming을 진행할 때  github의 repo에서 fork 를 한 후 각자 git clone을 한다.

 

여기서 pair의 repo를 연결하여 remote repo에 연결해야 한다.

 

git remote add pair URL(해당 pair의 repo 주소)

 

를 입력하여 연결해 준다.

 

git remote -v 를 입력하면 pair repo와 연결되어있는지 알 수 있다.

 

그리고 우선 작업한 사람이 git add , git commit, git push origin master 로 자신의 repo에 넘긴다.

 

그러면 pair는 git pull pair master를 통해 작업물을 pull 한다.

 

그리고 이 작업을 반복 진행하면서 pair programming을 진행하면 된다.

 


conflict 해결

 

pair programming을 진행하다 보면 내가 작업한 코딩에 pair의 작업물을 git pull하는 과정에서

 

conflict가 발생하게 된다.

 

이를 해결하기 위해서는 merge를 해야 한다.

 

conflict가 발생하였을때 code . 을 통해 visual code를 실행하면

 

<<<<<<<<HEAD (current change)
 //나의 현재 작업물
 
 ======
 //git pull한 작업물
 
 >>>>>>>> (incomming change)
 

형태로 나타나게 된다.

 

HEAD 위에는 Accept Current  Change / Accept Incomming Change / Accept Both Change / Compare Change

 

가 나타나게 되고

 

Accept Current  Change를 누르게 되면 //나의 현재 작업물 만 merge 하게 되고

 

Accept Incomming Change를 누르게 되면 // git pull한 작업물 을 merge 하게 된다.

 

Accept Both Change를 누르면 두개의 작업물 모두 merge 하게 된다.

 

merge 한 이후 다시 git add, git commit, git push를 하게 되면 정상적으로 remote repo에 넘어가 문제를 해결하게 된다.