개발/Git

[Git] GitHub vs Gerrit

growing-dev 2023. 1. 9. 22:30

GitHub와 Gerrit이 뭐지?

GitHub와 Gerrit 두 가지 모두 코드를 관리하고 코드 리뷰를 통한 협업을 위한 시스템이다.

Git을 베이스로 하여 각자 로컬 저장소에 있는 코드들을 함께 효율적으로 관리하기 위해 만든 시스템이라고 볼 수 있다.

또한 두 가지 모두 코드 리뷰를 자동화하고 강제하는 목적에 맞춰 만들어진 시스템이다. 수정한 코드를 적용하려면 일정 점수 이상의 코드 리뷰 점수를 획득해야 하도록 설정할 수 있다. 개발자가 수정한 코드를 중앙 저장소에 보내면 자동으로 지정된 리뷰어에게 알림이 가고, 리뷰어는 온라인으로 리뷰를 진행한다. 리뷰에서 규정된 점수 이상을 획득하면 최종적으로 해당 코드를 반영할 수 있다.

 

Gerrit 

https://www.gerritcodereview.com/about.html

 

Gerrit's History | Gerrit Code Review

Google Mondrian Google developed Mondrian, a Perforce based code review tool to facilitate peer-review of changes prior to submission to the central code repository. Mondrian is not open-source, as it is tied to the use of Perforce and to many Google-only

www.gerritcodereview.com

GitHub

https://github.com/

 

GitHub: Let’s build from here

GitHub is where over 94 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

 

두 개의 차이는?

일단 당연히 운영하는 회사가 다르다.

Gerrit은 AOSP를 지원하기 위해 Google에서 시작됐다. 동료끼리의 코드 리뷰(peer code review)에 익숙했던 Android 개발자들이 소스 코드 저장소를 Git으로 이전하면서 Git에 기반을 둔 코드 리뷰 도구가 필요해서 만들었다.

GitHub는 말그대로 Git을 위한 Hub로써 2008년 별도의 회사에서 만들어져서, 최근 MS에 인수되기까지 오픈소스 생태계의 확대와 더불어 급격하게 성장했고 계속 성장하고 있는 시스템이다. 그렇기 때문에 기본적으로 UI와 각종 기능들이 훨씬 많고 지속적으로 확대되고 있다.

Gerrit은 회사와 프로젝트에 친화적이고 GitHub는 개발자, 오픈소스에 친화적이다.

업무 flow상 Gerrit은 Commit 단위를 강조하고, GitHub는 Branch단위 및 PR (Pull Request)를 강조한다.

 

무엇을 추천하는가?

일단 회사에서는 Gerrit을, 개인적이거나 소규모 프로젝트는 GitHub를 추천한다.

Gerrit이 아무래도 Google과 같은 큰 기업에서 reference로 사용하다 보니 안정성과 속도에 중점을 둔 느낌이 있다. 그래서 다른 별도의 기능이나 UI 같은 것이 끌리지 않는다. 설치하고 설정하고 사용하는 것조차 쉽지 않다. 즉 코드 리뷰와 코드 관리 측면에서 최적화되었다고 볼 수 있다. 물론 plugin으로 jenkins 등을 지원하여 확장성이 없진 않지만.. https://www.gerritcodereview.com/plugins.html

 

Gerrit Code Review - Plugins | Gerrit Code Review

Antonio Barone analytics, analytics-wizard, audit-sl4j, aws-dynamodb-refdb, events-aws-kinesis, events-gcloud-pubsub, events-kafka, git-repo-metrics, github, github-groups, github-profile, github-pullrequest, github-replication, github-webhooks, healthchec

www.gerritcodereview.com

 

반면 GitHub는 기본적인 기능 이외에 pages, wiki, actions 등과 같은 여러 가지 부가 기능을 지원하고 UI 또한 훨씬 좋은 것 같다. 당장 웹사이트에 접속해서 가입만하면 repository를 생성할 수 있고 바로 clone하여 여러가지 작업을 할 수 있다.

 

 

반응형