어벤져스가 git을 이용해 협업한다고?

초보자를 위한 혁신적인 git 도구 Sourcetree 2탄

약 한달 전에 우리는 Sourcetree를 이용한 git의 사용법에 대해서 알아보았다.

그때는 혼자 사용하는 방법에 대해서 알아보았다.

이번에는 혼자가 아닌 협업이 필요한 경우는 어떻게 Sourcetree를 사용할 수 있는지 영웅들의 사례를 통해 아주 쉽게 알아보자.

당연한 이야기지만 git과 Sourcetree가 설치되어 있어야 하고, Github계정이 필요하다.

git 링크

Sourcetree 링크

Github 링크

저장소 만들기

8wgOvccc_400x400

우선 한달 전에 했던 것처럼 repository를 만들자.

Github에 sourcetree-together라는 repository를 만들었다.

그리고 Sourcetree에서 repository를 개인 노트북이나 데스크탑에 clone을 해보자.

clone을 하면 로컬에 repository가 생성된다.

그리고 readme.md 파일을 만들었다.

내 컴퓨터에서 작업한 readme.md 파일은 아직 Github에는 없다. 작업한 결과물을 Github에도 알려주어야 한다.

이런 방법으로 혼자 작업할 수 있다.

뭔가 익숙하지 않았는가? 여기까지는 한달 전, 같이 알아봤던 사실이다.

 

아, Sourcetree 사용법을 아~~주 조금 잊어 버렸다면 링크에서 확인할 수 있다.

 

‘가지’ 만들기

branch-2224065_960_720

그러면 협업은 어떻게 해야 할까? 우리는 branch라는 것을 더 만들어 사용할 것이다.

branch란 뭘까? 말 그대로 가지다. 여러 가지를 뻗어 작업하고 이상이 없다면 하나의 가지로 합칠 수 있다.

Github을 보면 ‘master’라는 가지가 생성되어 있다. master는 기본적으로 생성되고 branch를 수정하지 않는다면 내가 Github에 보낸 파일, 코드들은 여기로 올라간다.

이제 다른 가지를 만들어 보자.

Sourcetree에서 ‘브랜치’를 누르면 다른 가지의 이름을 설정하고 만들 수 있다.

 

 

이 ‘branch’를 이용해 협업이 필요한 영웅들을 보며 어떻게 할 수 있는지 관찰해보자.

미국에서 우리의 영웅들이 울트론에 대항하기 위해 인공지능을 탑재한 인조인간 ‘비전’을 만들기로 했다.

이 친구가 비전이다.

나머지 영웅들은 컴알못이기 때문에 ironman과 hulk가 주도적으로 담당하기로 했다.

hulk는 몸을 만들고, ironman은 이후에 인공지능을 몸에 이식하기로 했다.

 

각자 비전을 만들기 위한 작업을 하고 이상이 없다면 master 가지에 합치기로 약속했다. 그리고 각자 이름으로 branch를 만들었다.

왼쪽을 살펴보면 ‘브랜치’ 항목에 ironman, hulk 친구들이 추가된 것을 확인할 수 있다. 아주 쉽게 더블 클릭으로 branch를 변경할 수 있다.

그리고 만든 가지들로 한번씩 push를 진행해주면 Github에도 hulk, ironman 가지가 표시된다.

먼저 hulk가 비전의 몸을 만들기 위한 작업을 시작했다.

hulk의 작업으로 비전의 몸을 구성하는 많은 파일들이 생겨났다.

화면을 보면 어떤 파일이 추가되었는지 알 수 있다. 이제 hulk 가지로 push하고 Github을 확인해보면

hulk 가지에서 내용이 변경된 것을 확이할 수 있다. 당연히, hulk 가지로만 Github에 올렸기 때문에 master, ironman 가지에는 변경된 사항이 없다.

헐크 작업 다했다. 부수러 나가도 될까?

incredible-hulk-1710710_1920

hulk가 자신의 작업 분량을 끝냈다. 비전의 몸을 다 만들어낸 것이다.

바로 master에 합칠 수도 있지만 먼저 ironman에게 확인을 받고 하는 것이 좋을 것 같다는 생각을 했다.

이럴 때는 Pull request를 통해서 ‘나 할 일 다함. 확인 좀 부탁해.’ 라고 알려줄 수 있다.

Github에서 hulk 가지로 변경한 후에 오른쪽에 보이는 초록색 ‘Compare & pull request’버튼을 누르자.

그리고 master로 변경시켜주고

그리고 메세지를 남기거나 변경된 내용, 무엇을 만들었는지 설명할 수 있다.

ironman이 확인해보고 이상이 없다면 아래쪽 ‘Marge’버튼을 눌러 master 가지에 합칠 수 있다.

 

혹은 다른 가지를 더 만들어 거기서 작업물을 합치고 완성시킨 후에 master 가지에 올리는 방법도 있다.

 

그런데 ironman이 작업물을 자세히 보니, 비전의 몸이 100% 비브라늄(모르는 사람은 정말 정말 단단한 물질이라고 생각하길 바란다)이여야 정상인데, 알루미늄이 섞여있는 것이 아닌가?

이렇듯, 작업물에 이상이 있으면 master 가지에 합치지 않을 수 있다.

‘Marge’버튼 아래쪽을 보면 코멘트를 남길 수 있고 ‘Close pull request’버튼도 보인다. 이 버튼을 누르면 hulk의 Pull request를 거절하는 것이다.

그리고 무엇이 이상한지, 어디에 오류가 있는지 등 코멘트를 남겨 나중에 hulk가 확인할 수도 있다.

자비스, 최신 파일로 다운로드해놔.

ironman-1043700_960_720

ironman은 hulk의 작업물에 이상이 없어, master 가지에 합쳤다.

이상없이 master 가지에 hulk가 작업한 비전 몸을 구성하는 파일들이 추가되었다.

 

이제는 ironman이 인공지능을 만들 차례다. 그런데, ironman의 컴퓨터에는 아직 hulk의 비전 몸 파일들이 추가되지 않았다.

 

이상태로 작업하고 Github에 올리면 충돌(conflict)이 일어난다. 그렇기 때문에 최신 작업물로 바꿔야 한다. 이 역할을 하는 것이 ‘Pull’이다.

우선 Sourcetree에서 ironman 가지를 더블클릭하자.

Sourcetree 위쪽을 보면 ‘풀’이라는 버튼이 있다. 버튼을 누르면 위 사진과 같이 설정창이 뜬다.

가져오기 위한 브랜치를 ‘master’로 설정해 주고 로컬 브랜치를 ‘ironman’이 맞는지 체크하고 ‘확인’을 누르면 최신 작업물을 다운받는다.

그럼 hulk가 만든 비전의 몸 파일이 변경된 것을 확인할 수 있다.

그리고 hulk와 같이 ironman은 자신의 일을 하고 Github에 올리고 Pull request를 진행하면 된다.

 

지금은 혼자 역할극을 했지만, 실제 협업도 이런 식으로 이름이 다른 가지로 작업하고 ‘Pull request’를 하고 ‘Merge’하는 방법으로 진행된다.

 

협업에서 지금같은 기술적인 방법들이 기초가 되어야겠지만, 제일 중요한 것은 같이 하는 사람과의 ‘약속’이다. 어떤 식으로 작업하고 정리하고, 다른 가지에 합치고 등 서로 약속을 통해 만들어야 한다.

 

혹시 나중에 Github을 이용해 협업해야 하는 경우가 오면 hulk와 ironman을 기억해주기를 바란다.

Summary
어벤져스가 git을 이용해 협업한다고?
Article Name
어벤져스가 git을 이용해 협업한다고?
Description
약 한달 전에 우리는 Sourcetree를 이용한 git의 기초적인 사용법에 대해서 알아보았다. 그때는 혼자 사용하는 방법에 대해서 알아보았다. 이번에는 혼자가 아닌 협업이 필요한 경우는 어떻게 Sourcetree를 사용할 수 있는지 영웅들의 사례를 통해 아주 쉽게 알아보자. 당연한 이야기지만 git과 Sourcetree가 설치되어 있어야 하고, Github계정이 필요하다.
Author