tree-sitter로 코드를 구조적으로 비교하고 이미지, 폰트, 아카이브, PDF도 비교하는 Rust 기반 콘텐츠 인식 diff 도구입니다.
Wilfred/difftastic
줄 단위가 아닌 구문 트리로 파일을 비교해, 서식 변경과 코드 이동도 정확히 보여주는 CLI diff 도구입니다.
- 스타
- 26,159
- 포크
- 533
- 열린 이슈
- 282
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
Difftastic은 두 파일을 줄 단위가 아니라 구문을 기준으로 비교하는 구조적 diff 도구입니다. 두 파일을 파싱한 뒤, 코드 서식이 바뀌거나 여러 줄로 나뉘어도 실제로 변경된 구문 요소만 강조합니다.
공백은 해당 언어에서 의미가 있을 때만 중요한 변경으로 처리하므로, 단순한 들여쓰기 변경은 그에 맞게 인식합니다. 파일 형식을 인식하지 못하면 단어를 강조 표시하는 줄 단위 diff로 대체합니다. 출력은 패치를 생성하기 위한 형식이 아니라 사람이 읽기 좋도록 나란히 보여줍니다.
Difftastic은 git을 비롯한 여러 버전 관리 시스템에서 사용할 수 있으며, 병합 충돌 마커의 양쪽을 비교해 충돌을 확인할 수도 있습니다. 구문이 변경됐는지에 따라 종료 코드를 반환하는 검사 전용 모드도 제공합니다.
핵심 기능
- 01코드를 구문 트리 기준으로 비교해 서식 변경으로 인한 불필요한 diff를 줄입니다.
- 0230개 이상의 프로그래밍 언어를 지원합니다.
- 03구문상 의미가 있는 경우에만 공백 변경을 강조합니다.
- 04git을 비롯한 여러 버전 관리 시스템에서 사용할 수 있습니다.
- 05충돌한 양쪽을 비교해 병합 충돌 마커를 diff로 보여줍니다.
- 06전체 diff를 출력하지 않고 구문 변경을 확인하는 검사 전용 모드를 제공합니다.
활용 사례
- 코드 서식이나 구조를 변경한 커밋을 검토할 때.
- Rust, JavaScript, HTML 같은 언어로 작성된 대규모 리팩터링의 diff를 읽을 때.
- CI에서 두 파일 버전의 구문이 서로 다른지 확인할 때.
- 실제 변경 사항을 더 명확하게 나란히 보며 병합 충돌을 살펴볼 때.
빠른 시작
- 1
매뉴얼의 설치 가이드에 따라 difftastic을 설치합니다
- 2
difft로 두 파일을 비교합니다
difft foo1.c foo2.c
사용 전 알아둘 점
- 변경 사항이 많은 파일에서는 성능이 크게 저하되고 메모리를 많이 사용할 수 있습니다.
- 항상 순서를 중요하게 취급하므로 집합의 요소나 정렬되지 않은 키처럼 순서가 바뀐 항목도 변경 사항으로 표시됩니다.
- 병합하거나 나중에 적용할 수 있는 패치를 생성하지 않습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- difftastic은(는) 무엇인가요?
- 줄 단위가 아닌 구문 트리로 파일을 비교해, 서식 변경과 코드 이동도 정확히 보여주는 CLI diff 도구입니다. Difftastic은 두 파일을 줄 단위가 아니라 구문을 기준으로 비교하는 구조적 diff 도구입니다. 두 파일을 파싱한 뒤, 코드 서식이 바뀌거나 여러 줄로 나뉘어도 실제로 변경된 구문 요소만 강조합니다.
- difftastic은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- difftastic은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- difftastic은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. difftastic의 마지막 커밋은 2026년 11월 4일입니다.
- difftastic은(는) 어디에 사용할 수 있나요?
- 코드 서식이나 구조를 변경한 커밋을 검토할 때. Rust, JavaScript, HTML 같은 언어로 작성된 대규모 리팩터링의 diff를 읽을 때. CI에서 두 파일 버전의 구문이 서로 다른지 확인할 때. 실제 변경 사항을 더 명확하게 나란히 보며 병합 충돌을 살펴볼 때.
- difftastic는 어떻게 설치하나요?
- 매뉴얼의 설치 가이드에 따라 difftastic을 설치합니다 difft로 두 파일을 비교합니다: difft foo1.c foo2.c
- difftastic은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Wilfred/difftastic
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
git의 기본 pager를 대체하도록 설정할 수 있는, git·diff·grep·blame 출력을 위한 구문 강조 pager입니다.
Git, Jujutsu, Sapling, GitHub PR, 원시 파일의 코드 변경 사항을 검토하고 인라인 에이전트 노트를 추가할 수 있는 인터랙티브 터미널 diff 뷰어입니다.
AI 프롬프트로 복사할 수 있는 댓글을 지원하는 로컬 GitHub 스타일 diff 리뷰 CLI 도구
터미널에서 GitHub 스타일의 구문 강조를 적용해 diff를 좌우로 나란히 보여주는 git 페이저입니다.
Git 변경 사항을 파일별 diff 목록 대신 업무 목적별로 묶어 한 화면짜리 HTML 리뷰 페이지로 만들어 주는 에이전트 Skill입니다.