Git 속성
GitLab은 저장소의 루트 디렉터리에 있는 .gitattributes
파일을 사용하여 사용자 정의 Git 속성을 정의하는 것을 지원합니다. .gitattributes
파일을 사용하여 파일 처리 및 표시에 대한 변경 사항을 선언하세요. 다음과 같은 내용으로:
- 생성된 파일 축소하여 차이점 표시.
- 사용자 정의 병합 드라이버 생성.
- 독점적인 잠금 파일을 사용하여 파일을 읽기 전용으로 표시.
- 차이점에서 구문 강조 표시 변경.
- Git LFS를 사용하여 이진 파일 처리 선언.
- 저장소에 사용된 언어 선언.
인코딩 요구 사항
.gitattributes
파일은 UTF-8로 인코딩되어야 하며 바이트 순서 표시(BOM)를 포함해서는 안 됩니다. 다른 인코딩이 사용된 경우 파일의 내용이 무시됩니다.
혼합 파일 인코딩 지원
GitLab은 파일의 인코딩을 자동으로 감지하려고 시도하지만 ISO-8859-1
과 같은 다른 유형을 제외하고는 기본적으로 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의 Self-managed 인스턴스 관리자는 GitLab 구성 파일에 사용자 정의 병합 드라이버를 정의한 후 Git .gitattributes
파일에서 해당 드라이버를 사용할 수 있습니다. 사용자 정의 병합 드라이버는 GitLab.com에서는 지원되지 않습니다.
사용자 정의 병합 드라이버는 충돌 해결에 대한 고급 제어 권한을 제공하는 Git 기능입니다. 사용자 정의 병합 드라이버는 비합리적인 병합 충돌의 경우에만 호출되므로 어떤 파일이 병합되는 것을 방지하는 신뢰할 수 있는 방법은 아닙니다.
사용자 정의 병합 드라이버 구성
다음 예시는 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
값을 실행할 명령으로 사용합니다. 이 경우 .gitattributes
에 지정된 파일은 병합 시 아무 작업도 수행하지 않는 true
를 사용하고 있습니다.
자체의 병합 드라이버를 사용하려면 driver
의 값을 실행 파일을 가리키도록 바꿔야 합니다. 이 명령이 어떻게 호출되는지에 대한 자세한 내용은 사용자 정의 병합 드라이버의 Git 문서를 참조하세요.
.gitattributes
를 사용하여 적용할 사용자 정의 병합 드라이버가 적용되는 파일 설정
.gitattributes
파일에서 사용자 정의 병합 드라이버를 사용하려는 파일의 경로를 설정할 수 있습니다. 예를 들어:
config/* merge=foo
이 경우 config/
폴더 아래의 모든 파일이 GitLab 구성에서 정의된 foo
라는 사용자 정의 병합 드라이버를 사용합니다.
자료
- Git 속성에 관한 공식 Git 문서