PMPV

조금 더 효율적인 협업 프로젝트 - Squash and merge, Github issue (1) 본문

development/Fxxk Git

조금 더 효율적인 협업 프로젝트 - Squash and merge, Github issue (1)

playinys 2018. 8. 30. 22:02
반응형

0.

늘 그렇듯 참고 자료 출처 먼저!


지난주, 멋사 6기 해커톤을 진행하며 팀 늘카테의 프로젝트 "늘어진 카세트 테이프"가 거의(아마) 완성되었다.
9월 중 완성과 배포를 목적으로 진행 중인데, 해커톤에서 경험했던 협업의 어려움과 개선 방안을 여기에 서술한다.
팀원들의 깃 활용 수준은 지난 포스팅에 서술했던 내용까지였다. 이번에 경험한 어려움은 크게 다음과 같다.

(1) 복잡하고 불필요해보이는 커밋 이력
(2) 커밋 메세지만으로는 부족한 마일스톤 파악과 공유


위 두 에러사항을 한눈에 알 수 있는 상황은 다음과 같다.


늘카테 팀의 커밋 내역이다. 개별 브랜치를 사용하지 않고 마스터 브랜치에서 모든 작업을 진행하다보니 항상 최신 작업 내역이 필요해 그랬는지 개발 커밋보다 머지 커밋이 훨씬 많다. 이때문에 팀원들이 커밋 메세지를 열심히 적어줬음에도 작업 상황을 공유하기가 쉽지 않았다. "네브바 작업 하시는 분 있어요?", "레코드 모델 컬럼 수정했어요~"와 같은 작업 계획, 진행 과정을 직접 물어보고 말해주며 작업이 진행되었다. 만약 원격 작업이었으면 협업이 불가능했겠지..


이러면 안될거같다! 좋은 방법을 찾아봐야 한다. 개선 목표는 두 가지다.


(1) 커밋 내역을 더 깔끔하게 하기

(2) 팀/개인의 작업 진행 상황을 한 눈에 볼 수 있게 하기


1. Squash and merge

첫 번째 문제는 의외로 금방 해결되었다.


나의 멘토 나의 빛 나의 갓갓 킹갓빛황의조올타임남바완존잘남 이동근 님의 도움으로 꿀팁을 소개받았다!

지금까지 풀리퀘스트를 날릴 때 초록색 버튼을 클릭클릭클릭하며 넘어갔는데 요런 기능이 숨어있었다.

스쿼시 머지를 하는 방법은 다음과 같다.


풀리퀘스트를 날리고 병합할 때, 기본으로 설정된 Create a merge commit 대신 두 번째 있는 Squash and merge를 선택해준다.

스쿼시는 한 브랜치 안에 있는 모든 작업 내역을 하나의 커밋으로 통합해준다. 내가 원하는건 네모 박스 안에 있는 두 가지 커밋 내역을 원격 저장소에 반영하는 법이다. 기존의 방식으로 한다면 원격 저장소를 병합한 내역, 내 커밋 내역이 팀의 저장소에 줄줄 쌓일 것이다. 마치 이렇게



언제나 예쁘고 깔끔하고 아름다운 내역을 원하는 입장에서는 매우 짜증스러운 일이 되겠다. 하지만 이런 작업 내역을 스쿼시 머지를 통해 반영한다면 아래와 같이 깔끔하게 나온다!



내가 보낸 풀리퀘스트가 하나의 단일 커밋으로 바뀌고 깔--끔하게 한 줄로 나온다.

이전의 커밋 메세지 내역도 저렇게 하나의 단일 내역으로 통합되어 가독성이 좋아진다. 매우 깔끔깔끔

앞으로는 Merge pull request, Merge remote-branch tracking으로 범벅된 커밋 내역을 보지 않아도 될 것 같다. 만족스럽다.


해결하지 못한 문제점이 한 가지 있긴 하다.



스쿼시 머지가 현재 브랜치 안의 모든 커밋 내역을 통합해주는 기능 때문인지 어쩐지는 모르겠지만, 커밋 로그에 지난 작업 내역까지 모조리 나온다.

가장 최근의 작업 내역만 반영하고 싶은데 이렇게 나오니 또 한 번 방법을 찾아봐야 할 것 같다.

지금은 메세지를 남길 때 이전 메세지 내역을 직접 지워주며 메세지만 깔끔하게 머지를 하고 있다. 언젠간 해결되겠지..


2. Github issue

스쿼시 머지를 통해 앞으로는 작업 내역이 조금 더 깔끔하게 공유될 수 있길 기대한다.
하지만 커밋 내역으로는 부족했다. 팀 단위 작업을 위해서는 현재 내가 어떤 작업을 하고 있고, 얼만큼 진행됐고, 목표가 무엇인지를 공유할 수 있어야 한다.
이를 위해 슬랙, 트렐로 등의 툴을 많이 쓰는 것으로 알고 있다. 혹은 구글 문서 앱을 통해 공유하기도 한다. 팀 늘카테 역시 문서를 통해 현재 목표와 진행 상황을 공유했다. 처음에는 트렐로를 이용할까 했지만 어차피 안볼 사람은 안본다 라는 의견에 설득당했다. 그래서 구글 문서를 통해 공유하기로 했는데 이것도 역시 쓰는 사람만 쓰게 되더라. 작업을 위한 툴이 너무 많아질 때 하나씩 소외되는 도구가 생기게 된다는걸 다시 체감했다.

그래도 깃허브 커밋 내역은 최신 작업 내역을 확인할 때 꼬박꼬박 보게 되니까 깃허브에서 이걸 공유할 수 있지 않을까 하는 생각을 했다. 그러다 페북에서 발견한 아주 굿굿 포스팅 덕에 Issue 탭을 사용하기로 했다!


내용이 길어져서 다음 포스팅으로 넘긴다.

반응형
Comments