- 스니펫 생성하기
- 스니펫 발견하기
- 스니펫의 기본 가시성 변경하기
- 버전 관리되는 스니펫
- 파일 이름
- 여러 파일 추가 또는 제거
- 스니펫 복제
- 스니펫 임베드
- 스니펫 다운로드
- 스니펫에 대한 댓글
- 스니펫을 스팸으로 표시
- 문제 해결
- 관련 주제
스니펫
GitLab 스니펫을 사용하면 다른 사용자와 코드 및 텍스트의 일부를 저장하고 공유할 수 있습니다.
스니펫에서 댓글을 추가, 복제하고,
버전 관리를 사용할 수 있습니다. 스니펫은
여러 파일을 포함할 수 있으며,
구문 강조, 임베드, 다운로드를 지원합니다.
또한 스니펫 API를 사용하여 스니펫을 관리할 수 있습니다.
스니펫을 다음을 통해 생성하고 관리할 수 있습니다:
- GitLab 사용자 인터페이스
- VS Code를 위한 GitLab Workflow 확장
glab
CLI
GitLab은 두 가지 유형의 스니펫을 제공합니다:
-
개인 스니펫: 프로젝트와 독립적으로 생성됩니다.
스니펫에 대한 가시성 레벨을 설정할 수 있습니다: 공개 또는 비공개입니다. -
프로젝트 스니펫: 항상 특정 프로젝트와 관련이 있습니다.
프로젝트 스니펫은 공개적으로 보이거나 프로젝트 구성원만 볼 수 있습니다.
Internal
가시성 설정이 비활성화됩니다.Internal
가시성 설정을 사용하는 기존 스니펫은 이 설정을 유지합니다.변경 사항에 대한 자세한 내용은 관련 이슈를 읽어보세요.
스니펫 생성하기
개인 스니펫을 생성할 것인지 프로젝트 스니펫을 생성할 것인지에 따라 여러 가지 방법으로 스니펫을 생성할 수 있습니다:
- 생성할 스니펫의 종류를 선택합니다:
-
개인 스니펫을 생성하려면 다음 중 하나를 수행합니다:
- 스니펫 대시보드에서 새 스니펫을 선택합니다.
- 프로젝트에서: 왼쪽 사이드바에서 새로 만들기 ()를 선택합니다. GitLab에서 아래 새 스니펫을 선택합니다.
- 다른 페이지에서: 왼쪽 사이드바에서 새로 만들기 ()를 선택한 다음 새 스니펫을 선택합니다.
-
glab
CLI에서glab snippet create
명령을 사용합니다.
전체 지침은 명령의 문서를 참조하세요. -
VS Code를 위한 GitLab Workflow 확장을 설치한 경우,
Gitlab: Create snippet
명령을 사용합니다.
-
프로젝트 스니펫을 생성하려면: 프로젝트 페이지로 이동합니다. 새로 만들기 ()를 선택합니다.
이 프로젝트에서 아래에 새 스니펫을 선택합니다.
-
개인 스니펫을 생성하려면 다음 중 하나를 수행합니다:
- 제목에 제목을 추가합니다.
- 선택 사항. 설명에 스니펫에 대한 설명을 추가합니다.
-
파일에 파일에 적절한 이름과 확장자를 입력합니다. 예:
example.rb
또는index.html
.
적절한 확장자가 있는 파일 이름은 구문 강조를 표시합니다.
파일 이름을 추가하지 않으면 알려진 복사 및 붙여넣기 버그가 발생할 수 있습니다.
파일 이름을 제공하지 않으면 GitLab에서 이름을 생성합니다. - 선택 사항. 여러 파일을 스니펫에 추가합니다.
- 가시성 레벨을 선택하고 스니펫 만들기를 선택합니다.
스니펫을 생성한 후에도 스니펫에 더 많은 파일을 추가할 수 있습니다.
스니펫은 기본적으로 버전 관리됩니다.
스니펫 발견하기
GitLab에서 귀하에게 보이는 모든 스니펫을 발견하려면 다음과 같이 하십시오:
-
프로젝트의 스니펫 보기:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 귀하의 프로젝트를 찾으십시오.
- 코드 > 스니펫을 선택하십시오.
-
귀하가 생성한 모든 스니펫 보기:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하십시오.
- 귀하의 작업을 선택하십시오.
- 스니펫을 선택하십시오.
GitLab.com에서는 스니펫을 직접 방문할 수 있습니다.
-
모든 공용 스니펫 탐색:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하십시오.
- 탐색을 선택하십시오.
- 스니펫을 선택하십시오.
GitLab.com에서는 모든 공용 스니펫을 직접 방문할 수 있습니다.
스니펫의 기본 가시성 변경하기
프로젝트 스니펫은 기본적으로 활성화되고 사용 가능한 상태입니다. 기본 가시성을 변경하려면:
- 프로젝트에서 설정 > 일반으로 이동하십시오.
- 가시성, 프로젝트 기능, 권한 섹션을 확장하고 스니펫으로 스크롤하십시오.
- 기본 가시성을 전환하고 스니펫을 모든 사람이 볼 수 있을지, 아니면 프로젝트 구성원만 볼 수 있을지를 선택하십시오.
- 변경 사항 저장을 선택하십시오.
버전 관리되는 스니펫
개인 스니펫과 프로젝트 스니펫 모두 기본적으로 버전 관리를 사용합니다.
즉, 모든 스니펫은 스니펫이 생성되는 순간에 기본 브랜치와 함께 초기화된 고유한 기본 리포지토리를 갖습니다. 스니펫에 대한 변경 사항이 저장될 때마다, 기본 브랜치에 새 커밋이 기록됩니다. 커밋 메시지는 자동으로 생성됩니다. 스니펫의 리포지토리는 하나의 브랜치만 가지고 있습니다. 이 브랜치를 삭제하거나 다른 브랜치를 생성할 수 없습니다.
파일 이름
스니펫은 제공된 파일 이름과 확장자에 따라 구문 강조를 지원합니다. 파일 이름과 확장자 없이 스니펫을 제출할 수 있지만, 리포지토리에서 콘텐츠를 파일로 생성하기 위해 유효한 이름이 필요합니다.
스니펫에 대해 파일 이름과 확장자가 제공되지 않으면, GitLab은 snippetfile<x>.txt
형식으로 파일 이름을 추가합니다. 여기서 <x>
는 파일에 추가된 숫자를 나타내며, 1부터 시작합니다. 이름이 없는 스니펫을 더 추가하면 이 숫자가 증가합니다.
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을 통해 스니펫을 관리할 수 있습니다 (스니펫이 버전 관리됨으로 Git 리포지토리에 의해), 스니펫 API와 GitLab UI에서도 관리할 수 있습니다.
GitLab UI를 통해 스니펫에 새 파일을 추가하려면:
- GitLab UI에서 스니펫으로 이동합니다.
- 오른쪽 상단 모서리에서 편집을 선택합니다.
- 다른 파일 추가를 선택합니다.
- 제공된 양식 필드에 파일의 내용을 추가합니다.
- 변경 사항 저장을 선택합니다.
GitLab UI를 통해 스니펫에서 파일을 삭제하려면:
- GitLab UI에서 스니펫으로 이동합니다.
- 오른쪽 상단 모서리에서 편집을 선택합니다.
- 삭제할 각 파일의 파일 이름 옆에 있는 파일 삭제를 선택합니다.
- 변경 사항 저장을 선택합니다.
스니펫 복제
업데이트를 받으려면 스니펫을 로컬로 복사하는 대신 복제하세요. 복제는 스니펫과 저장소 간의 연결을 유지합니다.
스니펫을 복제하려면:
- Clone을 선택한 후 SSH 또는 HTTPS로 복제할 URL을 복사하세요.
복제된 스니펫에 변경 사항을 커밋하고 변경 사항을 GitLab에 푸시할 수 있습니다.
스니펫 임베드
공개 스니펫은 공유 및 웹사이트에 임베드할 수 있습니다. GitLab 스니펫을 여러 장소에서 재사용할 수 있으며, 소스의 모든 변경 사항이 임베드된 스니펫에 반영됩니다. 임베드된 경우 사용자는 다운로드하거나 스니펫을 원시 형식으로 볼 수 있습니다.
스니펫을 임베드하려면:
- 스니펫이 공개적으로 표시되는지 확인하세요:
- 프로젝트 스니펫 경우, 프로젝트는 공개여야 합니다.
- 스니펫은 공개적으로 표시됩니다.
- 프로젝트에서 설정 > 일반으로 이동하세요. 가시성, 프로젝트 기능, 권한 섹션을 확장하고 스니펫으로 스크롤하세요. 스니펫 권한을 모든 액세스 권한이 있는 사람으로 설정하세요.
-
스니펫의 임베드 섹션에서 복사를 선택하여 웹사이트나 블로그 게시물에 추가할 수 있는 한 줄 스크립트를 복사하세요. 예:
<script src="https://gitlab.com/namespace/project/snippets/SNIPPET_ID.js"></script>
- 파일에 스크립트를 추가하세요.
임베드된 스니펫은 다음을 표시하는 헤더를 표시합니다:
- 파일 이름(정의된 경우).
- 스니펫 크기.
- GitLab 링크.
- 실제 스니펫 내용.
예:
스니펫 다운로드
스니펫의 원시 내용을 다운로드할 수 있습니다. 기본적으로 Linux 스타일의 줄 끝(LF
)로 다운로드됩니다. 원래 줄 끝을 유지하려면 매개변수 line_ending=raw
를 추가해야 합니다.
(예: https://gitlab.com/snippets/SNIPPET_ID/raw?line_ending=raw
). GitLab 웹 인터페이스를 사용하여 스니펫이 생성된 경우 원래 줄 끝은 Windows 스타일(CRLF
)입니다.
스니펫에 대한 댓글
스니펫을 통해 해당 코드 조각에 대한 대화에 참여할 수 있으며, 이는 사용자 협업을 촉진할 수 있습니다.
스니펫을 스팸으로 표시
자체 관리 GitLab 인스턴스의 관리자는 스니펫을 스팸으로 표시할 수 있습니다.
사전 요구 사항:
- 인스턴스의 관리자여야 합니다.
- 인스턴스에서 Akismet 스팸 보호 기능이 활성화되어 있어야 합니다.
이 작업을 수행하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾으세요.
- 코드 > 스니펫을 선택하세요.
- 스팸으로 신고할 스니펫을 선택하세요.
- 스팸으로 신고를 선택하세요.
GitLab은 스팸을 Akismet에 전달합니다.
문제 해결
스니펫 제한 사항
- 생성할 수 있는 스니펫 수에는 제한이 없습니다.
- 바이너리 파일은 지원되지 않습니다.
- 브랜치를 생성하거나 삭제하는 것은 지원되지 않습니다. 기본 브랜치만 사용됩니다.
- 스니펫 저장소에서 Git 태그는 지원되지 않습니다.
- 스니펫의 저장소는 10개 파일로 제한됩니다. 10개 이상의 파일을 푸시하려고 하면 오류가 발생합니다.
- 수정 사항은 GitLab UI에서 사용자에게 표시되지 않지만 문제가 존재합니다 업데이트를 위해.
- 기본 스니펫 최대 크기와 현재(2024-04-17 기준)는 50 MB입니다.
- Git LFS는 지원되지 않습니다.
스니펫 리포지토리 크기 줄이기
버전 관리되는 스니펫은 네임스페이스 저장소 크기의 일부로 간주되므로,
스니펫 리포지토리를 가능한 한 컴팩트하게 유지하는 것이 좋습니다.
리포지토리 크기를 줄이기 위한 도구에 대한 자세한 내용은
리포지토리 크기 줄이기 문서를 참조하세요.
스니펫 텍스트 상자에 텍스트를 입력할 수 없음
파일 이름 필드 뒤의 텍스트 영역이 비활성화되어 새 스니펫 생성을 방해하는 경우,
다음 방법을 사용하세요:
- 스니펫의 제목을 입력합니다.
-
파일 필드의 맨 아래로 스크롤한 다음
다른 파일 추가를 선택합니다. GitLab은 두 번째 파일을 추가하기 위한 두 번째 세트의 필드를 표시합니다. - 두 번째 파일의 파일 이름 필드에 파일 이름을 입력하여 알려진 복사-붙여넣기 버그를 피합니다.
- 두 번째 파일의 텍스트 영역에 임의의 문자열을 입력합니다.
- 첫 번째 파일 이름으로 다시 스크롤하고 파일 삭제를 선택합니다.
- 나머지 파일을 생성한 후 스니펫 생성을 선택합니다.
관련 주제
- 셀프 관리 GitLab 인스턴스에서 스니펫 설정 구성