이동식 저장소

[Github] 브랜치 만들기 본문

Secondary/Github

[Github] 브랜치 만들기

해스끼 2020. 5. 23. 18:31

저는 Github를 2년 남짓 사용하면서 협업을 해 본 적이 없습니다. 오픈 소스의 성지에서 독방 작업만을 한 셈이죠.. Github을 마치 원격 코드 저장소로만 사용했습니다.

 

그러다가 어떤 조별과제 때문에 Github의 협업 기능을 본격적으로 이용해야 하는 상황이 되었습니다. 이제 단순히 master에 커밋하고 푸시만 하는 수준으로는 안 된다는 생각이 들어, 본격적으로 협업 기능을 사용해 보려 합니다.

 

이 글은 Github를 처음 사용하는 초보 개발자를 위한 글이기도 하지만, 동시에 저와 우리 조원들을 위한 글이기도 합니다. 물론 저도 초보 개발자입니다.

 

브랜치란 무엇인가?

마이크로소프드의 Windows 10도 Github에서 개발되고 있다고 합니다. 수백, 수천 명의 개발자가 동시에 코드를 수정하고 올리다 보면 온갖 상황이 벌어질 겁니다. 내가 A를 개발하는 동시에 옆 자리 선배님이 B를 개발할 수도 있고, 건너편 동기 C가 나와 같은 부분을 수정해서 충돌이 생길 수도 있고..

 

독방에 있던 지금까지의 저는 이런 상황을 고민할 필요가 전혀 없었습니다. master 브랜치 하나면 충분했죠. 그러나 브랜치 하나로는 협업을 할 수 없습니다. 뭐 내가 개발하는 동안 조원들한테 코드 건드리지 말라고 할 수도 없고.

 

브랜치를 활용하여 이런 상황을 헤쳐나갈 수 있습니다. 저를 포함한 조원 각각의 브랜치를 만들고, 브랜치에서 자유롭게 중간 수정사항을 커밋하다가, 완성한 결과물을 master에 병합하면 됩니다. 이러면 각 개발자의 독립성을 보장하는 동시에 편리하게 코드를 공유할 수 있습니다. 이제 카톡으로 코드 안 보내도 됩니다.

 

브랜치 만들기

Github desktop을 기준으로 브랜치를 만들어 봅시다. 일단 글 쓰는 시점에서 프로젝트에는 master 브랜치 하나만 존재합니다.

 

메뉴의 Branch-New branch를 클릭합시다.

브랜치 이름을 입력하고 Create Branch 버튼을 누릅니다.

상단 바에서 브랜치가 바뀐 것을 확인할 수 있습니다. 브랜치 이름은 branch-mwy입니다.

브랜치 사이를 이동할 때(checkout이라고 합니다) 커밋하지 않은 변경 사항이 있다면, 변경 사항을 원래 브랜치에 놔둘 것인지 아니면 이동할 브랜치로 끌고 올 것인지 결정할 수 있습니다. 저는 변경 사항을 새로 만든 branch로 가져왔습니다. master는 마지막 커밋 상태에서 변하지 않습니다.

 

브랜치를 만들었으니 커밋을 하나 해 봅시다. 저는 IntelliJ에서 테스트 커밋을 하나 해 보겠습니다. 왼쪽에 브랜치 이름이 보이네요.

 

커밋을 한 후에 IntelliJ의 Git 메뉴(위 스크린샷에서도 보이죠?)를 클릭해 보면, branch-mwy에 커밋한 내역이 보입니다.

가지가 뻗어나왔다

브랜치를 만들고, 커밋까지 했으니 이제 변경 내용을 push해 봅시다. IntelliJ에서 Ctrl+Shift+K를 누르면 됩니다.

 

Push를 누르고 잠시 기다리면 정상적으로 push했다는 알림이 나타납니다. 잘 하셨습니다!

 

이제 우리는 각 브랜치에서 서로의 작업에 영향받지 않고 독립적으로 코드를 만질 수 있습니다. 이 프로젝트에서는 조원마다 하나의 브랜치를 만들 계획이지만, 구현할 기능마다 브랜치를 만들고 여러 사람이 여러 브랜치를 넘나들며 코드를 커밋할 수도 있습니다. 이런 방법은 주로 대규모 프로젝트에서 많이 사용하는 방법이라고 합니다.

 

다음 글에서는 브랜치와 브랜치를 합치는 merge(병합)에 대해 살펴보도록 하겠습니다.

'Secondary > Github' 카테고리의 다른 글

[Github] Pull request  (1) 2020.05.29
[Github] Merge (병합)  (0) 2020.05.24
Comments