스니펫

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab 스니펫을 사용하면 코드와 텍스트 조각을 저장하고 다른 사용자와 공유할 수 있습니다. 스니펫에서는 코멘트를, 복제를, 그리고 버전 관리를 할 수 있습니다. 또한 여러 파일을 포함할 수 있습니다. 또한 구문 강조, 임베딩, 다운로드 를 지원하며 스니펫 API를 사용하여 스니펫을 유지할 수 있습니다.

GitLab 사용자 인터페이스를 통해 스니펫을 만들고 관리하거나 GitLab Workflow VS Code 확장 프로그램을 사용하여 관리할 수 있습니다.

스니펫 예시

GitLab은 두 가지 유형의 스니펫을 제공합니다:

  • 개인 스니펫: 특정 프로젝트와 독립적으로 생성됩니다. 스니펫에 대한 가시성 수준을 설정할 수 있습니다: 공개 또는 비공개.
  • 프로젝트 스니펫: 항상 특정 프로젝트와 관련이 있습니다. 프로젝트 스니펫은 공개적으로 표시되거나 프로젝트 구성원에게만 표시될 수 있습니다.
note
2019년 7월부터 내부 가시성 설정은 GitLab.com의 새 프로젝트, 그룹, 및 스니펫에서 비활성화되었습니다. 기존 스니펫은 내부 가시성 설정을 유지합니다. 변경 사항에 대해 더 많이 알아보려면 관련 이슈를 확인하세요.

스니펫 생성

개인 또는 프로젝트 스니펫을 만들고 싶은 경우 여러 가지 방법으로 만들 수 있습니다:

  1. 만들고 싶은 스니펫의 유형을 선택하세요:
    • 개인 스니펫을 만들려면, 다음 중 하나를 수행하세요:
    • 프로젝트 스니펫을 만들려면: 프로젝트 페이지로 이동하세요. 새로 만들기를 선택하세요 (). 이 프로젝트 내에서에서 새로운 스니펫을 선택하세요.
  2. 제목에 제목을 추가하세요.
  3. 선택 사항. 설명에 스니펫을 설명하세요.
  4. 파일에서 적절한 이름과 확장자를 가진 파일을 지정하세요. 예: example.rb 또는 index.html. 적절한 확장명이 있는 파일명은 구문 강조가 표시됩니다. 파일명을 제공하지 않으면 알려진 복사 붙여넣기 버그가 발생할 수 있습니다. 파일을 제공하지 않으면 GitLab이 이름을 생성합니다.
  5. 선택 사항. 스니펫에 여러 파일을 추가하세요.
  6. 가시성 수준을 선택하고 스니펫 생성을 선택하세요.

스니펫을 만든 후에도 파일을 더 추가할 수 있습니다. GitLab 13.0 이후로는 스니펫이 기본적으로 버전 관리됩니다.

스니펫 발견

GitLab에서 내가 볼 수 있는 모든 스니펫을 발견하려면 다음을 수행할 수 있습니다:

  • 프로젝트 스니펫 보기:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾으세요.
    2. 코드 > 스니펫을 선택하세요.
  • 내가 만든 모든 스니펫 보기:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택하세요.
    2. 내 작업을 선택하세요.
    3. 스니펫을 선택하세요.

    GitLab.com에서는 내 스니펫을 직접 방문할 수도 있습니다.

  • 모든 공개 스니펫 탐색:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택하세요.
    2. 탐색을 선택하세요.
    3. 스니펫을 선택하세요.

    GitLab.com에서는 모든 공개 스니펫을 직접 방문할 수도 있습니다.

스니펫의 기본 가시성 변경

프로젝트 스니펫은 기본적으로 활성화되어 있습니다. 그들의 기본 가시성을 바꾸려면:

  1. 프로젝트에서 설정 > 일반으로 이동하세요.
  2. 가시성, 프로젝트 기능, 권한 섹션을 확장하고 스니펫으로 스크롤하세요.
  3. 기본 가시성을 전환하고 스니페틀르 전체 누구나 확인할 수 있거나 프로젝트 구성원만 확인할 수 있도록 선택하세요.
  4. 변경 사항 저장을 선택하세요.

버전별 스니펫

GitLab 13.0부터 스니펫(개인 및 프로젝트 스니펫 모두)은 기본적으로 버전 관리가 활성화됩니다.

즉, 모든 스니펫은 생성되는 순간 기본 브랜치로 초기화된 자체 배포 저장소를 갖습니다. 스니펫을 저장할 때마다 기본 브랜치에 대한 새로운 커밋이 기록됩니다. 커밋 메시지는 자동으로 생성됩니다. 스니펫 저장소에는 하나의 브랜치만 있습니다. 이 브랜치를 삭제하거나 다른 브랜치를 만들 수 없습니다.

기존 스니펫은 GitLab 13.0에서 자동으로 이전되었습니다. 현재 내용은 스니펫 저장소의 초기 커밋으로 저장되었습니다.

파일명

스니펫은 파일명 및 확장자에 따라 구문 강조를 지원합니다. 파일명 및 확장자를 제공하지 않고 스니펫을 제출할 수 있지만, 저장소에 파일로서의 콘텐츠를 생성하려면 유효한 이름이 필요합니다.

스니펫에 파일명 및 확장자가 제공되지 않으면 GitLab은 snippetfile<x>.txt 형식의 파일명을 추가합니다. 여기서 <x>는 파일에 추가된 번호를 나타냅니다. 이 번호는 무명 스니펫을 추가할 때마다 증가합니다.

GitLab 이전 버전에서 13.0으로 업그레이드할 때, 지원되는 파일명이 없는 기존 스니펫은 호환 가능한 형식으로 이름이 변경됩니다. 예를 들어, 스니펫의 파일명이 http://a-weird-filename.me인 경우, 이는 http-a-weird-filename-me으로 변경되어 스니펫 저장소에 포함됩니다. 스니펫은 ID로 저장되기 때문에 파일명을 변경하면 스니펫에 대한 직접 또는 포함된 링크가 깨집니다.

여러 파일 추가 또는 삭제

단일 스니펫은 관련 파일을 최대 10개까지 지원하며, 이는 관련 파일을 함께 유지하는 데 도움이 됩니다. 예를 들면:

  • 스크립트 및 해당 출력을 포함하는 스니펫.
  • HTML, CSS 및 JavaScript 코드를 포함하는 스니펫.
  • docker-compose.yml 파일 및 이와 관련된 .env 파일이 포함된 스니펫.
  • 프로젝트를 초기화하고 종속성을 관리하는 데 사용되는 gulpfile.js 파일 및 package.json 파일.

스니펫에 10개 이상의 파일이 필요한 경우 위키를 대신 만들어야 합니다. 위키는 구독 수준에 관계없이 프로젝트에 대해 사용할 수 있으며, 그룹은 GitLab Premium에서 사용할 수 있습니다.

여러 파일을 포함하는 스니펫은 스니펫 목록에 파일 수를 표시합니다:

스니펫 예시

스니펫은 Git 저장소에 의해 버전 관리되므로 스니펫 API 및 GitLab UI를 통해 관리할 수 있습니다.

GitLab UI를 통해 스니펫에 새 파일을 추가하려면:

  1. GitLab UI에서 스니펫으로 이동합니다.
  2. 오른쪽 상단에서 편집을 선택합니다.
  3. 다른 파일 추가를 선택합니다.
  4. 제공된 양식 필드에 콘텐츠를 추가합니다.
  5. 변경 사항 저장을 선택합니다.

GitLab UI를 통해 스니펫에서 파일을 삭제하려면:

  1. GitLab UI에서 스니펫으로 이동합니다.
  2. 오른쪽 상단에서 편집을 선택합니다.
  3. 삭제하려는 파일 옆의 파일 삭제를 선택합니다.
  4. 변경 사항 저장을 선택합니다.

스니펫 복제

스니펫을 로컬로 복사하는 대신 복제하여 업데이트를 받도록합니다. 복제는 스니펫에 대한 연결을 유지합니다.

스니펫을 복제하려면:

  • 복제를 선택한 다음 SSH 또는 HTTPS로 복제할 URL을 복사합니다.

복제된 스니펫에 변경 사항을 커밋하고 GitLab에 푸시할 수 있습니다.

스니펫 임베드

공개 스니펫은 모든 웹 사이트에 공유하고 임베드할 수 있습니다. GitLab 스니펫을 여러 장소에서 재사용할 수 있으며, 소스에 대한 모든 변경 사항이 임베드된 스니펫에서 반영됩니다. 임베드된 경우 사용자는 해당 내용을 다운로드하거나 원시 형식으로 볼 수 있습니다.

스니펫을 임베드하려면:

  1. 스니펫이 공개 상태인지 확인합니다:
    • 프로젝트 스니펫의 경우 프로젝트가 공개 상태여야 합니다.
    • 스니펫이 공개 상태여야 합니다.
    • 프로젝트에서 설정 > 일반으로 이동합니다. 가시성, 프로젝트 기능, 권한 섹션을 펼치고, 스니펫으로 스크롤하여 스니펫 권한을 모든 사용자로 설정합니다.
  2. 스니펫의 임베드 섹션에서 한 줄 스크립트를 복사할 수 있는 복사를 선택하여 웹 사이트나 블로그 글에 추가합니다. 예:

    <script src="https://gitlab.com/namespace/project/snippets/SNIPPET_ID.js"></script>
    
  3. 스크립트를 파일에 추가합니다.

임베드된 스니펫 헤더에는 다음이 표시됩니다:

  • 정의된 파일명(있는 경우).
  • 스니펫 크기.
  • GitLab 링크.
  • 실제 스니펫 콘텐츠.

예:

스니펫 다운로드

스니펫의 raw 콘텐츠를 다운로드할 수 있습니다. 기본적으로 Linux 스타일의 줄 끝 (LF)로 다운로드됩니다. 원본 줄 끝을 유지하려면 line_ending=raw 매개변수를 추가해야 합니다 (예: https://gitlab.com/snippets/SNIPPET_ID/raw?line_ending=raw). 스니펫이 GitLab 웹 인터페이스를 사용하여 생성된 경우 원래 줄 끝은 Windows 스타일인 (CRLF)입니다.

스니펫에 댓글 남기기

스니펫을 사용하면 코드 조각에 대한 대화에 참여하여 사용자 협업을 촉진할 수 있습니다.

스니펫을 스팸으로 표시

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

자체 관리 GitLab 인스턴스의 관리자는 스니펫을 스팸으로 표시할 수 있습니다.

전제 조건:

  • 인스턴스의 관리자여야 합니다.
  • 인스턴스에서 Akismet 스팸 보호가 활성화되어 있어야 합니다.

이 작업을 수행하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > 스니펫을 선택합니다.
  3. 스팸으로 신고하려는 스니펫을 선택합니다.
  4. 스팸으로 제출을 선택합니다.

GitLab은 스팸을 Akismet으로 전달합니다.

문제 해결

스니펫 제한 사항

  • 바이너리 파일은 지원되지 않습니다.
  • 브랜치 생성 또는 삭제가 지원되지 않습니다. 기본 브랜치만 사용됩니다.
  • 스니펫 저장소에서 Git 태그는 지원되지 않습니다.
  • 스니펫 저장소는 10개의 파일로 제한됩니다. 10개 이상의 파일을 푸시하려고 하면 오류가 발생합니다.
  • 리비전은 GitLab UI에서 사용자에게 표시되지 않지만, 이슈가 존재합니다 (영어).
  • 기본 스니펫의 최대 크기는 50MB입니다.
  • Git LFS는 지원되지 않습니다.

스니펫 저장소 크기 축소

버전 관리되는 스니펫은 네임스페이스 저장소 크기의 일부로 간주되므로 스니펫 저장소를 가능한 한 콤팩트하게 유지하는 것이 좋습니다.

저장소 크기를 축소하기 위한 도구에 대한 자세한 내용은 저장소 크기 축소 문서를 참조하십시오.

스니펫 텍스트 상자에 텍스트 입력할 수 없음

파일 이름 필드 뒤의 텍스트 영역이 비활성화되어 새로운 스니펫을 만들지 못하게 하는 경우 다음 해결 방법을 사용하십시오:

  1. 스니펫에 제목을 입력합니다.
  2. 파일 추가를 선택합니다. GitLab은 두 번째 파일을 추가할 수 있는 필드를 표시합니다.
  3. 두 번째 파일의 파일 이름 필드에 알려진 복사 붙여넣기 버그를 피하기 위한 파일 이름을 입력합니다.
  4. 두 번째 파일의 텍스트 영역에 문자열을 입력합니다.
  5. 첫 번째 파일 이름으로 돌아가 파일 삭제를 선택합니다.
  6. 파일의 나머지를 작성한 후 완료되면 스니펫 생성을 선택합니다.

관련 주제