Git 속성

자세한 정보: Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab은 귀하의 저장소 루트 디렉터리에 있는 .gitattributes 파일에서 사용자 정의 Git 속성을 정의하는 것을 지원합니다. .gitattributes 파일을 사용하여 파일 처리 및 표시에 대한 변경사항을 선언합니다. 이러한 변경사항에는 다음이 포함됩니다.

인코딩 요구 사항

.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에서 사용자 정의 병합 드라이버를 정의하고 사용하는 방법을 보여줍니다.

사용자 정의 병합 드라이버를 구성하는 방법은 설치 유형에 따라 다릅니다.

Linux 패키지 (Omnibus)
  1. /etc/gitlab/gitlab.rb를 편집합니다.
  2. 다음과 유사한 구성을 추가합니다:

    gitaly['configuration'] = {
      # ...
      git: {
        # ...
        config: [
          # ...
          { key: "merge.foo.driver", value: "true" },
        ],
      },
    }
    
직접 컴파일한 경우 (소스)
  1. gitaly.toml을 편집합니다.
  2. 다음과 유사한 구성을 추가합니다:

    [[git.config]]
    key = "merge.foo.driver"
    value = "true"
    

이 예시에서 병합 중에 Git은 driver 값을 명령으로 실행합니다. 이 경우, 우리는 아무 인자 없이 true를 사용하므로 항상 0이 아닌 반환 코드를 가져옵니다. 이는 .gitattributes에 지정된 파일에 대해 병합이 아무것도 하지 않도록 합니다.

자체의 병합 드라이버를 사용하려면 driver의 값을 실행 가능 파일을 가리키도록 바꿉니다. 이 명령이 어떻게 호출되는지에 대한 자세한 내용은 사용자 정의 병합 드라이버를 참조하세요.

.gitattributes를 사용하여 사용자 정의 병합 드라이버를 적용할 파일 설정

.gitattributes 파일에서 사용자 정의 병합 드라이버를 사용할 파일의 경로를 설정할 수 있습니다. 예를 들어:

config/* merge=foo

이 경우 config/ 폴더 아래의 모든 파일이 GitLab 구성에서 정의된 foo라는 사용자 정의 병합 드라이버를 사용합니다.

자료