InfoGrab Docs

Git 속성

요약

GitLab은 리포지터리의 루트 디렉터리에 있는 .gitattributes 파일에서 사용자 정의 Git 속성을 정의하는 것을 지원합니다. .gitattributes 파일은 UTF-8로 인코딩되어야 하며 바이트 순서 표시(BOM)를 포함해서는 안 됩니다.

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

인코딩 요구 사항#

.gitattributes 파일은 UTF-8로 인코딩되어야 하며 바이트 순서 표시(BOM)를 포함해서는 안 됩니다. 다른 인코딩을 사용하면 파일 내용이 무시됩니다.

혼합 파일 인코딩 지원#

GitLab은 파일 인코딩을 자동으로 감지하려고 시도하지만 감지기가 다른 유형(예: ISO-8859-1)을 확신하지 않는 한 기본적으로 UTF-8을 사용합니다. 잘못된 인코딩 감지는 비UTF-8 인코딩의 악센트 문자와 같이 텍스트에 일부 문자가 표시되지 않을 수 있습니다.

Git에는 이 상황을 처리하기 위한 내장 지원이 있으며 리포지터리 자체에 대해 지정된 인코딩과 UTF-8 간에 파일을 자동으로 변환합니다. working-tree-encoding 속성을 사용하여 .gitattributes 파일에서 혼합 파일 인코딩 지원을 구성합니다.

예시:

*.xhtml text working-tree-encoding=ISO-8859-1

이 예시 구성으로 Git은 로컬 트리에서 ISO-8859-1 인코딩으로 리포지터리의 모든 .xhtml 파일을 유지하지만 리포지터리에 커밋할 때 UTF-8로 변환합니다. GitLab은 올바르게 인코딩된 UTF-8만 보므로 파일을 정확하게 렌더링합니다.

이 구성을 기존 리포지터리에 적용하는 경우 로컬 복사본의 인코딩이 올바르지만 리포지터리가 그렇지 않다면 파일을 수정하고 다시 커밋해야 할 수 있습니다. git add --renormalize .를 실행하여 전체 리포지터리에 대해 수행할 수 있습니다.

자세한 내용은 working-tree-encoding을 참조하세요.

구문 강조 표시#

.gitattributes 파일을 사용하여 파일과 diff를 구문 강조 표시할 때 사용할 언어를 정의할 수 있습니다. 자세한 내용은 구문 강조 표시를 참조하세요.

사용자 정의 머지 드라이버#

GitLab Self-Managed 관리자는 GitLab 구성 파일에서 사용자 정의 머지 드라이버를 정의한 다음 Git .gitattributes 파일에서 사용자 정의 머지 드라이버를 사용할 수 있습니다. 사용자 정의 머지 드라이버는 GitLab.com에서 지원되지 않습니다.

사용자 정의 머지 드라이버는 충돌 해결에 대한 고급 제어를 제공하는 Git 기능입니다. 사용자 정의 머지 드라이버는 사소하지 않은 머지 충돌의 경우에만 호출되므로 일부 파일이 머지되지 않도록 방지하는 신뢰할 수 있는 방법이 아닙니다.

사용자 정의 머지 드라이버 구성#

다음 예시는 GitLab에서 사용자 정의 머지 드라이버를 정의하고 사용하는 방법을 보여줍니다.

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

  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의 값을 실행 파일을 가리키도록 교체합니다. 이 명령이 호출되는 방법에 대한 자세한 내용은 사용자 정의 머지 드라이버에 대한 Git 문서를 참조하세요.

사용자 정의 머지 드라이버가 적용되는 파일을 설정하는 .gitattributes 사용#

.gitattributes 파일에서 사용자 정의 머지 드라이버와 함께 사용하려는 파일의 경로를 설정할 수 있습니다. 예를 들어:

config/* merge=foo

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

리소스#

Git 속성

Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GitLab은 리포지터리의 루트 디렉터리에 있는 .gitattributes 파일에서 사용자 정의 Git 속성을 정의하는 것을 지원합니다. .gitattributes 파일은 UTF-8로 인코딩되어야 하며 바이트 순서 표시(BOM)를 포함해서는 안 됩니다.

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

인코딩 요구 사항#

.gitattributes 파일은 UTF-8로 인코딩되어야 하며 바이트 순서 표시(BOM)를 포함해서는 안 됩니다. 다른 인코딩을 사용하면 파일 내용이 무시됩니다.

혼합 파일 인코딩 지원#

GitLab은 파일 인코딩을 자동으로 감지하려고 시도하지만 감지기가 다른 유형(예: ISO-8859-1)을 확신하지 않는 한 기본적으로 UTF-8을 사용합니다. 잘못된 인코딩 감지는 비UTF-8 인코딩의 악센트 문자와 같이 텍스트에 일부 문자가 표시되지 않을 수 있습니다.

Git에는 이 상황을 처리하기 위한 내장 지원이 있으며 리포지터리 자체에 대해 지정된 인코딩과 UTF-8 간에 파일을 자동으로 변환합니다. working-tree-encoding 속성을 사용하여 .gitattributes 파일에서 혼합 파일 인코딩 지원을 구성합니다.

예시:

*.xhtml text working-tree-encoding=ISO-8859-1

이 예시 구성으로 Git은 로컬 트리에서 ISO-8859-1 인코딩으로 리포지터리의 모든 .xhtml 파일을 유지하지만 리포지터리에 커밋할 때 UTF-8로 변환합니다. GitLab은 올바르게 인코딩된 UTF-8만 보므로 파일을 정확하게 렌더링합니다.

이 구성을 기존 리포지터리에 적용하는 경우 로컬 복사본의 인코딩이 올바르지만 리포지터리가 그렇지 않다면 파일을 수정하고 다시 커밋해야 할 수 있습니다. git add --renormalize .를 실행하여 전체 리포지터리에 대해 수행할 수 있습니다.

자세한 내용은 working-tree-encoding을 참조하세요.

구문 강조 표시#

.gitattributes 파일을 사용하여 파일과 diff를 구문 강조 표시할 때 사용할 언어를 정의할 수 있습니다. 자세한 내용은 구문 강조 표시를 참조하세요.

사용자 정의 머지 드라이버#

GitLab Self-Managed 관리자는 GitLab 구성 파일에서 사용자 정의 머지 드라이버를 정의한 다음 Git .gitattributes 파일에서 사용자 정의 머지 드라이버를 사용할 수 있습니다. 사용자 정의 머지 드라이버는 GitLab.com에서 지원되지 않습니다.

사용자 정의 머지 드라이버는 충돌 해결에 대한 고급 제어를 제공하는 Git 기능입니다. 사용자 정의 머지 드라이버는 사소하지 않은 머지 충돌의 경우에만 호출되므로 일부 파일이 머지되지 않도록 방지하는 신뢰할 수 있는 방법이 아닙니다.

사용자 정의 머지 드라이버 구성#

다음 예시는 GitLab에서 사용자 정의 머지 드라이버를 정의하고 사용하는 방법을 보여줍니다.

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

  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의 값을 실행 파일을 가리키도록 교체합니다. 이 명령이 호출되는 방법에 대한 자세한 내용은 사용자 정의 머지 드라이버에 대한 Git 문서를 참조하세요.

사용자 정의 머지 드라이버가 적용되는 파일을 설정하는 .gitattributes 사용#

.gitattributes 파일에서 사용자 정의 머지 드라이버와 함께 사용하려는 파일의 경로를 설정할 수 있습니다. 예를 들어:

config/* merge=foo

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

리소스#