Intro
Github 저장소의 언어 표기는 저장소의 주요 언어를 한눈에 보여주는 유용한 기능이다. 하지만 다양한 파일 포맷을 포함할 경우, 본래 의도한 언어와 다르게 표시될 수 있다. Github은 언어 통계를 위해 Linguist라는 오픈소스 도구를 사용한다.
Linguist는 각 파일의 확장자와 내용에 따라 언어를 감지하고, 라인 수를 기준으로 언어 비율을 계산한다. 이때 코드베이스의 양적인 부분만을 반영하기 때문에 핵심 코드가 아닌 파일이 많다면 실제 프로젝트 언어 비율과 다르게 나타날 수 있다.
이번 글에서는 .gitattributes
파일을 통해 Github 언어 통계를 조정하고, 불필요한 언어가 표시되지 않도록 하는 방법을 설명하겠다.
특정 파일과 폴더 제외 설정
.gitattributes
.gitattributes
파일을 저장소 루트에 생성하고 특정 파일이나 경로를 제외하는 설정을 추가할 수 있다. 아래 설정을 통해 특정 파일과 폴더를 제외할 수 있다.
- 특정 폴더 제외
node_modules
, vendor
폴더처럼 외부 라이브러리 코드가 많은 폴더를 제외하려면 다음과 같이 설정한다:
vendor/* linguist-vendored
이 설정은 vendor
폴더를 통계에서 제외한다.
- 특정 파일 확장자 제외
예를 들어, HTML 파일을 통계에서 제외하려면 .gitattributes
파일에 다음과 같이 작성한다:
*.html linguist-vendored
*.htm linguist-vendored
확장자별로 설정을 추가해야 하며, 다수의 확장자를 제외할 경우 각각 명시해줘야 한다.
- 특정 파일 제외
특정 파일을 제외하려면 아래와 같이 .gitattributes
파일에 설정을 추가한다:
Gemfile linguist-vendored
Gemfile.lock linguist-vendored
주로 Gemfile
과 같은 루트 파일이나 특정 환경 설정 파일 등을 제외하는 데 유용하다.
- 특정 언어 강제 설정
Linguist가 특정 파일의 언어를 잘못 인식할 경우, .gitattributes
파일에서 강제로 언어를 지정할 수도 있다. 예를 들어, Obj-C 파일을 정확히 표시하려면 아래와 같이 설정한다.
*.h linguist-language=Objective-C
*.m linguist-language=Objective-C
고려 사항
- 기본 브랜치에만 적용됨
Linguist 설정은 Github의 기본 브랜치에만 적용된다. 기본 브랜치가main
이 아닌develop
브랜치라면 해당 브랜치에 설정해야 한다. 이로 인해.gitattributes
설정이 기본 브랜치로 머지되기 전까지는 실제 언어 비율에 반영되지 않는다. - 언어 통계 반영 시간
.gitattributes
파일을 변경한 후 Github 언어 통계가 업데이트되기까지 오랜 지연이 발생할 수 있다. 반영되지 않은 것처럼 보일 때는 꽤 기다려야 할 수 있으며, 브라우저 캐시 문제로 인해 새로 고침이 필요할 수도 있다.
결론
Github 저장소의 언어 표기를 조정하여 불필요한 파일들이 언어 통계에 반영되지 않도록 설정하는 방법을 알아보았다. .gitattributes
파일을 통해 특정 파일 및 폴더를 제외하고, 특정 언어를 명시하여 Github 언어 표기를 보다 정확히 반영하도록 해보자.
References
'Development > Develop Tools' 카테고리의 다른 글
LibreOffice Calc셀 병합 단축키 설정 (0) | 2024.11.23 |
---|---|
매일 LeetCode 문제 풀이, 터미널 한 줄로 간편하게 (0) | 2024.11.16 |
Heritrix를 사용한 웹 아카이브 (0) | 2023.04.30 |
Liquibase 변경사항을 sql 파일로 추출하기 (0) | 2023.03.25 |
iPhone 사파리 페이지를 개발자모드 열기 (0) | 2023.01.28 |