본문 바로가기

습관/서평

지옥에서 온 문서 관리자 깃 & 깃허브 입문

휴가철에 맞춰서 오랜만에 집에 내려갔다 왔습니다.

 

KTX는 남는 자리가 하나도 없었고 5시간 정도를 버스에서 견뎌야 했습니다.

 

버스 탑승 전에 광화문 교보문고에서 볼 책을 골랐는데, 깃 & 깃허브 입문을 고르게 됐습니다.

 

일을 시작하면서 제일 두려운 것 중 하나가 협업 도구를 사용하는 일이라 강하게 동기부여를 받고 내려가는 차 안에서 읽어보기로 했죠.

 

 

BOOM!!

 

책은 깃의 가장 기초적인 내용을 다루며 얇기까지 해서 리눅스의 기초적인 명령어만 알고 있다면 이틀, 사흘 정도면 끝까지 읽을 수 있는 책입니다.

 

가장 기초적인 내용인 깃 저장소를 만들고 변경, 저장하는 내용을 다뤄서 개념을 잡기 편한 책이었습니다.

 

저는 깃을 사용하면서 어려웠던 점들이 이미 있어서 적은 내용임에도 큰 도움을 받게 됐습니다.

 

깃을 사용하다 보면 가장 기본적인 기능인데 다르게 동작할 때가 있습니다.

 

오히려 몰랐던 기능들은 사용하다 보면 별다른 상황들이 발생하지 않을 때가 많습니다.

 

 

cherry-pick의 경우, 특정 commit만을 원하는 branch에 적용할 수 있다.

 

가장 많이 마주치는 곤란한 상황이 push, pull, merge 시 발생하는 충돌일 거라고 생각이 되는데요.

 

코드가 길 경우에는 일일이 대조해보고 정리하기 어렵기 때문에 항상 pull을 먼저 잘 해놓고 그때 그때 push를 해서 동시에 한 코드를 수정하는 일이 적도록 하는게 가장 마음이 편한 일입니다.

 

하지만 실제로 깃을 사용하다 보면 생각보다 충돌이 자주 발생하게 됩니다.

 

이런 상황에서 필요한 게 바로 개념이라고 생각합니다.

 

가장 기본적인 동작이 어떻게 충돌을 해결해 나가게 되는 지 말이죠.

 

충돌을 없애는 결과가 나오는 건 같지만 여러가지 시나리오로 해결할 수 있고, 정답은 없다고 생각합니다. 본인에게 편한 방법을 고르면 되는 거겠죠.

 

전 트리를 조금이라도 깔끔하게 해 놓고 싶은 욕심에 reset을 많이 쓰는 편이었습니다. 당연히 이런 버릇 때문에 문제가 생기더라구요.

 

한 달 쯤 전에 처음부터 기능 개발을 하는 일정에 투입됐었는데요. 제 능력을 정확하게 가늠하기 어려웠습니다. 팀원에게 제가 생각하는 일정을 말씀드렸고 개발하다 보니 일정에 맞추지 못할 거 같아서 늦은 시간까지 집에서 개발하게 됐습니다.

 

저녁 늦게 push 중에 충돌이 발생했고 습관이라는 게 이런 때에 자연스럽게 나오는 거잖아요?

 

 

Boom...

 

결국은 코드를 다 날려먹고 제가 맡은 부분이 더 적어지는 결과가 됐습니다.

 

깃은 분명히 편리하게 쓰라고 만든 툴인데 제가 제대로 공부하지 않고 활용하는 바람에 부메랑처럼 되돌아 왔습니다.

 

이 책 덕분에 기본적인 내용을 한 번 더 짚게 됐습니다.

 

특히, 깃을 처음 쓰는 사람에게는 정말 추천할 만한 책이고 익숙한 분들께는 큰 도움이 되진 못할겁니다.

 

책을 다 읽고 나니 업무가 아닌, 다른 프로젝트에서 충돌 상황들을 겪어보고 해결해 보고 싶네요.

 

업무에서의 깃은 언제나 어렵고 좀 무섭습니다 :(