깃을 이용한 협업은 여러 개발자들이 코드 변경 사항을 효율적으로 관리하고 공유하는 중요한 방법입니다. 그러나 현재의 도구들은 때때로 복잡하고 번거로운 절차를 요구합니다.
git-pr 이러한 문제를 해결하기 위해 등장했습니다. 이 글에서는 git-pr의 주요 특징과 장점을 알아보겠습니다.
1. 가장 단순한 협업 도구의 탄생
git-pr의 목표는 가장 단순한 git 협업 도구를 만드는 것입니다. 이는 개발자가 외부 협업자의 시간과 에너지를 최소한으로 희생하면서도 자체 호스팅 git 서버를 실행할 수 있도록 도와줍니다. 단일 golang 바이너리만으로 서버를 실행할 수 있으며, 외부 기여자는 SSH 키 페어와 SSH 클라이언트만 있으면 됩니다. 이는 매우 간단하고 직관적입니다.
- 서버 실행: 단일 golang 바이너리
- 외부 기여자 준비물: SSH 키 페어, SSH 클라이언트
2. 이메일과 pull request의 결합
이메일은 git 저장소에 대한 변경 사항을 주고받기에 훌륭한 분산 시스템이지만, 온보딩과 설정 과정이 복잡하여 많은 개발자들이 중도에 포기하게 만듭니다. 반면, Github의 pull request는 사용과 관리가 편리하지만, 웹사이트 내에서만 코드 리뷰를 할 수 있다는 단점이 있습니다.
git-pr은 이메일과 깃의 두 가지 접근 방식을 결합하여 패치 생성의 간편함과 pull request의 사용 편의성을 갖춘 협업 도구입니다. 사용자는 로컬 개발 환경에서 모든 작업을 수행할 수 있어 브라우저에 묶여 있지 않아도 됩니다.
3. SSH를 활용한 완전한 협업
기여자와 프로젝트 소유자 간의 상호작용은 모두 터미널 내에서 이루어집니다. 이는 인체 공학적이고 기능이 완전한 협업 환경을 제공합니다. 알림은 RSS로 이루어지며, 모든 상태 변경은 정적 웹 자산 생성을 통해 간단한 파일 웹 서버에서 호스팅할 수 있습니다.
- 기여자와 소유자 간의 상호작용: 터미널 내에서
- 알림: RSS
- 상태 변경: 정적 웹 자산 생성
4. 협업의 효율성 극대화
git-pr은 코드 리뷰와 협업을 간소화하여 모든 작업이 코드 내에서 이루어지도록 합니다. 기여자와 소유자는 새 커밋을 생성하고 패치를 서로 주고받으며, 리뷰어가 웹 뷰어에서 댓글을 달 필요가 없습니다. 또한, 주석을 처리하고 후속 패치를 생성하는 것은 기여자의 역할입니다. 모든 주석을 처리하지 않으면 패치가 병합되지 않기 때문에, 리뷰의 철저함을 보장합니다.
5. 단순한 워크플로우
git-pr의 워크플로우는 매우 단순합니다. 외부 기여자는 저장소를 클론하고, 코드 변경을 커밋하고, 패치를 생성하여 SSH 서버에 제출합니다. 소유자는 이를 로컬로 적용하고 리뷰를 작성하여 다시 제출합니다. 이 과정을 반복하여 최종적으로 PR을 승인하고 main 브랜치에 푸시합니다.
- 외부 기여자가 저장소 클론(git-clone)
- 코드 변경(git-add & git-commit)
- 패치 생성(git-format-patch)
- SSH 서버에 PR 제출
- 소유자가 패치 적용(git-am)
- 코드 제안 작성(git-add & git-commit)
- 리뷰 제출(git-format-patch)
- PR 리뷰 수신
- 패치 재적용(git-am)
- 주석 검토 및 제거
- 패치 제출(git-format-patch)
- PR 승인 및 main 브랜치 푸시(git-push)
결론
git-pr은 간단하면서도 강력한 git 협업 도구입니다. 외부 기여자와의 협업을 쉽고 효율적으로 만들며, 로컬 개발 환경에서 모든 작업을 수행할 수 있는 자유를 제공합니다. 이러한 점에서 git-pr은 모든 개발자들이 한 번쯤 사용해 볼 만한 가치가 있는 도구입니다.
git-pr을 통해 협업의 새로운 세계를 경험해보세요. 여러분의 프로젝트가 더욱 효율적으로 진행될 것입니다.
참고 자료: git-pr, “새로운 git 협업 서비스”