Git 속성
자세한 정보: Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
GitLab은 귀하의 저장소 루트 디렉터리에 있는 .gitattributes
파일에서 사용자 정의 Git 속성을 정의하는 것을 지원합니다. .gitattributes
파일을 사용하여 파일 처리 및 표시에 대한 변경사항을 선언합니다. 이러한 변경사항에는 다음이 포함됩니다.
- 차이점에서 생성된 파일을 접기.
- 사용자 정의 병합 드라이버 생성.
- 파일을 읽기 전용으로 표시하기 위해 독점적 락 파일 생성.
- 차이점에서 구문 강조 표시 변경.
- 저장소에서 사용된 언어 선언.
- Git LFS를 사용한 이진 파일 처리 선언.
인코딩 요구 사항
.gitattributes
파일은 반드시 UTF-8로 인코딩되어야 하며 바이트 순서 표시(BOM)를 포함해서는 안 됩니다. 다른 인코딩이 사용된 경우 파일 내용이 무시됩니다.
혼합 파일 인코딩 지원
GitLab은 파일 인코딩을 자동으로 감지하려고 시도하지만 ISO-8859-1
과 같은 다른 형식으로 자신있게 인코딩을 감지하지 못하는 한 기본적으로 UTF-8로 설정됩니다. 잘못된 인코딩 감지는 텍스트에 표시되지 않는 문자(예: accented characters)가 발생할 수 있습니다.
Git은 이러한 경우에 대비하여 기본 지원이 내장되어 있으며 저장소 자체의 파일들을 지정된 인코딩과 UTF-8 간에 자동으로 변환합니다. .gitattributes
파일을 사용하여 저장소 내에서 혼합 파일 인코딩을 지원하도록 설정합니다.
예시:
*.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
파일을 사용하여 파일과 차이점의 구문 강조 표시를 정의할 수 있습니다. 자세한 내용은 구문 강조 표시를 참조하세요.
사용자 정의 병합 드라이버
자세한 정보: Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated
- GitLab 15.10에서 도입된 GitLab를 통한 사용자 정의 병합 드라이버 구성 기능.
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
의 값을 실행 가능 파일을 가리키도록 바꿉니다. 이 명령이 어떻게 호출되는지에 대한 자세한 내용은 사용자 정의 병합 드라이버를 참조하세요.
.gitattributes
를 사용하여 사용자 정의 병합 드라이버를 적용할 파일 설정
.gitattributes
파일에서 사용자 정의 병합 드라이버를 사용할 파일의 경로를 설정할 수 있습니다. 예를 들어:
config/* merge=foo
이 경우 config/
폴더 아래의 모든 파일이 GitLab 구성에서 정의된 foo
라는 사용자 정의 병합 드라이버를 사용합니다.
자료
- Git 속성에 대한 공식 Git 문서