Repolode
sds

sds/overcommit

커밋, 푸시 등 Git 이벤트에서 린터, 테스트, 사용자 지정 스크립트를 실행하는 Ruby 기반의 설정 가능한 Git hook 관리자입니다.

스타
4,005
포크
291
열린 이슈
34
마지막 커밋
어제

어떤 프로젝트인가요?

Overcommit은 저장소의 Git hook을 관리해 pre-commit, commit-msg, pre-push, post-checkout 같은 시점에 린터, 테스트 실행기, 포매터 등의 검사를 자동으로 실행합니다. hook 동작은 저장소별 .overcommit.yml 파일에서 설정하며, 개별 hook을 활성화하거나 비활성화하고 적용할 파일을 지정할 수 있습니다. 병렬 실행이나 실패 처리 방식 같은 옵션도 조정할 수 있습니다.

Ruby(RuboCop, RSpec), JavaScript(ESLint, Stylelint), Python(Pylint, Flake8), Go, PHP, Java, Shell 등 여러 언어와 도구를 지원하는 다양한 기본 hook이 제공됩니다. 후행 공백, merge conflict marker, 파일 크기를 검사하는 범용 hook도 포함되어 있습니다. 팀은 Ruby로 저장소 전용 hook을 작성하거나, Ruby 코드를 작성하지 않고 기존 shell 스크립트를 hook으로 등록할 수 있습니다.

설정은 소스 관리 시스템을 통해 공유할 수 있으며, .local-overcommit.yml 파일을 사용하면 개인별로 설정을 재정의할 수 있습니다. Overcommit은 hook 코드와 설정의 서명을 기록해 두므로, 다른 사람이 변경한 내용이 있으면 hook을 다시 실행하기 전에 이를 알립니다.

핵심 기능

  • 01pre-commit, commit-msg, pre-push, post-checkout 등 다양한 Git 이벤트에서 hook을 실행합니다.
  • 02널리 쓰이는 언어를 위한 다양한 기본 린터와 테스트 실행기를 제공합니다.
  • 03Ruby 코드를 작성하지 않고 기존 shell 스크립트를 hook으로 추가할 수 있습니다.
  • 04hook별 파일 필터, 브랜치 제외 설정, 병렬 실행을 지원합니다.
  • 05CI에서 저장소 전체를 검사하는 --run 모드를 제공합니다.

활용 사례

  • 팀 저장소에서 커밋할 때마다 RuboCop이나 ESLint를 자동으로 실행합니다.
  • 보호된 브랜치로의 푸시나 merge conflict marker가 포함된 커밋을 차단합니다.
  • 개발자가 로컬에서 커밋 전에 실행하는 것과 동일한 린트 검사를 CI에서도 실행합니다.

빠른 시작

  1. 1

    RubyGems를 통해 overcommit gem을 설치합니다

    gem install overcommit
  2. 2

    저장소로 이동하고 필요한 경우 Git을 초기화합니다

    git init
  3. 3

    Overcommit 훅을 저장소에 설치합니다

    overcommit --install

사용 전 알아둘 점

  • 일부 훅은 scss_lint와 같은 타사 도구에 의존합니다. 이러한 도구는 직접 설치해야 합니다.
  • Ruby 환경이 필요합니다. *nix에서는 Ruby 2.6 이상이 필요하며, Windows는 최선의 노력 수준으로만 지원합니다.

포함된 컬렉션

토픽

자주 묻는 질문

overcommit은(는) 무엇인가요?
커밋, 푸시 등 Git 이벤트에서 린터, 테스트, 사용자 지정 스크립트를 실행하는 Ruby 기반의 설정 가능한 Git hook 관리자입니다. Overcommit은 저장소의 Git hook을 관리해 pre-commit, commit-msg, pre-push, post-checkout 같은 시점에 린터, 테스트 실행기, 포매터 등의 검사를 자동으로 실행합니다. hook 동작은 저장소별 .overcommit.yml 파일에서 설정하며, 개별 hook을 활성화하거나 비활성화하고 적용할 파일을 지정할 수 있습니다. 병렬 실행이나 실패 처리 방식 같은 옵션도 조정할 수 있습니다.
overcommit은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
overcommit은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
overcommit은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. overcommit의 마지막 커밋은 2026년 11월 6일입니다.
overcommit은(는) 어디에 사용할 수 있나요?
팀 저장소에서 커밋할 때마다 RuboCop이나 ESLint를 자동으로 실행합니다. 보호된 브랜치로의 푸시나 merge conflict marker가 포함된 커밋을 차단합니다. 개발자가 로컬에서 커밋 전에 실행하는 것과 동일한 린트 검사를 CI에서도 실행합니다.
overcommit는 어떻게 설치하나요?
RubyGems를 통해 overcommit gem을 설치합니다: gem install overcommit 저장소로 이동하고 필요한 경우 Git을 초기화합니다: git init Overcommit 훅을 저장소에 설치합니다: overcommit --install
overcommit은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/sds/overcommit

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트