ECMAScript/JavaScript 코드의 문제 패턴을 찾아내고 많은 항목을 자동으로 수정하는 플러그인형 린터입니다.
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
RubyGems를 통해 overcommit gem을 설치합니다
gem install overcommit - 2
저장소로 이동하고 필요한 경우 Git을 초기화합니다
git init - 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 통계는 매일 갱신됩니다.
관련 프로젝트
`cargo` 하위 명령으로 실행하는 Rust 린터로, 800개가 넘는 린트로 흔한 실수를 찾아내고 더 관용적인 코드를 제안합니다.
코드를 실행하지 않고 오류와 코드 냄새를 찾아내며 코딩 표준을 적용하는 Python 정적 분석 도구입니다.
golint를 대체해 바로 사용할 수 있는 빠르고 설정 가능한 Go linter로, 사용자 정의 규칙과 출력 포맷터를 지원합니다.
Python 코드에서 사용하지 않는 import 문을 찾아 제거하는 린터 겸 포매터입니다.
Git 커밋 전에 코드를 검사하는 다국어 pre-commit hook을 관리하고 실행하는 프레임워크입니다.