Git 속성
GitLab은 리포지토리의 루트 디렉터리에 있는 .gitattributes
파일에서 사용자 정의 Git 속성을 정의하는 것을 지원합니다. .gitattributes
파일을 사용하여 파일 처리 및 표시 변경 사항을 선언합니다. 예를 들어:
- 차이점에서 생성된 파일 축소.
- 사용자 정의 병합 드라이버 만들기.
- 파일을 읽기 전용으로 표시하기 위해 배타적 잠금 파일 만들기.
- 차이점에서 구문 강조 변경하기.
- Git LFS를 사용하여 이진 파일 처리 선언하기.
- 리포지토리에서 사용된 언어 선언하기.
인코딩 요구 사항
.gitattributes
파일은 반드시 UTF-8로 인코딩되어야 하며 _바이트 순서 마크_를 포함하지 않아야 합니다. 다른 인코딩이 사용되면 파일의 내용은 무시됩니다.
혼합 파일 인코딩에 대한 지원
GitLab은 파일의 인코딩을 자동으로 감지하려고 시도하지만, 감지기가 다른 유형(예: ISO-8859-1
)에 확신하지 않는 한 기본적으로 UTF-8로 설정됩니다. 잘못된 인코딩 감지는 텍스트에서 일부 문자가 표시되지 않는 결과를 초래할 수 있습니다. 예를 들어 비 UTF-8 인코딩에서의 억제된 문자들입니다.
Git은 이 가능성을 처리하기 위한 기본 지원 기능을 가지고 있으며, 리포지토리 자체를 위해 지정된 인코딩과 UTF-8 간에 파일을 자동으로 변환합니다. .gitattributes
파일에서 working-tree-encoding
속성을 사용하여 혼합 파일 인코딩 지원을 구성하세요.
예시:
*.xhtml text working-tree-encoding=ISO-8859-1
이 예시 구성으로, Git은 로컬 트리에서 모든 .xhtml
파일을 ISO-8859-1 인코딩으로 유지하지만, 리포지토리에 커밋할 때는 UTF-8로 변환합니다. GitLab은 올바르게 인코딩된 UTF-8만 보므로 파일을 정확하게 렌더링합니다.
기존 리포지토리에 이 구성을 적용하는 경우, 로컬 복사본에 올바른 인코딩이 있더라도 리포지토리에 반영되지 않을 수 있습니다. 이 경우, 전체 리포지토리에 대해 git add --renormalize .
를 실행하여 수행할 수 있습니다.
자세한 정보는 working-tree-encoding을 참조하세요.
구문 강조
.gitattributes
파일은 파일과 차이점의 구문 강조에 사용할 언어를 정의하는 데 사용될 수 있습니다. 자세한 내용은 구문 강조를 참조하세요.
사용자 정의 병합 드라이버
- GitLab 15.10에서 도입된 사용자 정의 병합 드라이버를 구성하는 기능.
GitLab 자체 관리 인스턴스 관리자는 GitLab 구성 파일에서 사용자 정의 병합 드라이버를 정의한 다음, Git .gitattributes
파일에서 사용자 정의 병합 드라이버를 사용할 수 있습니다. 사용자 정의 병합 드라이버는 GitLab.com에서 지원되지 않습니다.
사용자 정의 병합 드라이버는 충돌 해결을 위한 고급 제어를 제공합니다.
사용자 정의 병합 드라이버는 비사소한 병합 충돌이 발생할 경우에만 호출되므로 일부 파일이 병합되지 않도록 방지하는 신뢰할 수 있는 방법이 아닙니다.
사용자 지정 병합 드라이버 구성
다음 예제는 GitLab에서 사용자 지정 병합 드라이버를 정의하고 사용하는 방법을 설명합니다.
사용자 지정 병합 드라이버를 구성하는 방법은 설치 유형에 따라 다릅니다.
-
/etc/gitlab/gitlab.rb
파일을 편집합니다. -
다음과 유사한 구성을 추가합니다:
gitaly['configuration'] = { # ... git: { # ... config: [ # ... { key: "merge.foo.driver", value: "true" }, ], }, }
-
gitaly.toml
파일을 편집합니다. -
다음과 유사한 구성을 추가합니다:
[[git.config]] key = "merge.foo.driver" value = "true"
이 예제에서 병합 중에 Git은 driver
값을 실행할 명령으로 사용합니다. 이 경우 인수 없이 true
를 사용하기 때문에 항상 0이 아닌 종료 코드를 반환합니다. 이는 .gitattributes
에 지정된 파일이 병합할 때 아무 작업도 하지 않음을 의미합니다.
자신의 병합 드라이버를 사용하려면 driver
의 값을 실행 파일을 가리키도록 변경하세요. 이 명령이 어떻게 호출되는지에 대한 자세한 정보는 Git 문서의 사용자 정의 병합 드라이버를 참조하세요.
.gitattributes
를 사용하여 사용자 지정 병합 드라이버가 적용될 파일 설정
.gitattributes
파일에서 사용자 지정 병합 드라이버와 함께 사용할 파일의 경로를 설정할 수 있습니다. 예를 들어:
config/* merge=foo
이 경우 config/
폴더 아래의 모든 파일은 GitLab 구성에서 정의된 사용자 지정 병합 드라이버인 foo
를 사용합니다.
리소스
- Git attributes에 대한 공식 Git 문서