저장소
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
저장소는 GitLab 프로젝트의 구성 요소입니다. 각 저장소는 GitLab 프로젝트의 일부이며, GitLab 프로젝트 없이는 존재할 수 없습니다. 저장소에 파일을 추가할 수 있습니다: GitLab UI에서 파일을 추가하거나 업로드하려면:
저장소는 GitLab 프로젝트의 구성 요소입니다. 저장소에 코드를 저장하고, 버전 제어로 변경 사항을 추적합니다.
각 저장소는 GitLab 프로젝트의 일부이며, GitLab 프로젝트 없이는 존재할 수 없습니다. 프로젝트는 저장소에 대한 구성 옵션을 제공합니다.
저장소 만들기#
저장소를 만들려면:
저장소에 파일 추가#
저장소에 파일을 추가할 수 있습니다:
- 프로젝트를 만들 때, 또는
- 프로젝트를 만든 후 다음 옵션을 사용하여:
UI에서 파일 추가#
GitLab UI에서 파일을 추가하거나 업로드하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 파일을 업로드할 디렉토리로 이동합니다.
- 디렉토리 이름 옆에서 더하기 아이콘(+) > Upload file을 선택합니다.
- 파일을 드롭하거나 업로드합니다.
- 커밋 메시지를 입력합니다.
- 선택 사항. 변경 사항으로 머지 리퀘스트를 만들려면 Target branch에 저장소의 기본 브랜치가 아닌 브랜치 이름을 입력합니다.
- Upload file을 선택합니다.
저장소에 변경 사항 커밋#
저장소의 브랜치에 변경 사항을 커밋할 수 있습니다. 명령줄을 사용할 때는 git commit을 사용합니다.
커밋을 사용하여 커뮤니케이션과 협업을 개선하고, 파이프라인을 트리거하거나 건너뛰고, 변경 사항을 되돌리는 방법에 대한 자세한 내용은 커밋을 참조하세요.
저장소 클론#
저장소는 다음 방법으로 클론할 수 있습니다:
- 명령줄:
- GitLab UI:
저장소 소스 코드 다운로드#
저장소의 소스 코드를 압축 파일로 다운로드하려면:
-
상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
파일 목록 위에서 Code를 선택합니다.
-
옵션에서 다운로드할 파일을 선택합니다:
-
Source code:
현재 보고 있는 브랜치에서 소스 코드를 다운로드합니다. 사용 가능한 확장자:
zip,tar,tar.gz,tar.bz2. -
Directory:
특정 디렉토리를 다운로드합니다. 하위 디렉토리를 볼 때만 표시됩니다. 사용 가능한 확장자:
zip,tar,tar.gz,tar.bz2. -
Artifacts:
최신 CI/CD 작업의 아티팩트를 다운로드합니다.
-
저장소 자체가 변경되지 않더라도 생성된 아카이브의 체크섬이 변경될 수 있습니다. 예를 들어 Git 또는 GitLab이 사용하는 타사 라이브러리가 변경되면 이런 일이 발생합니다.
Git 리비전별 저장소 보기#
커밋 SHA, 브랜치 이름, 태그와 같은 특정 Git 리비전에서 모든 저장소 파일과 폴더를 보려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 상단에서 Select Git revision 드롭다운 목록을 열도록 선택합니다.
- Git 리비전을 선택하거나 검색합니다.
커밋 페이지에서 특정 Git 리비전의 파일을 보고 탐색할 수도 있습니다.
저장소 언어#
GitLab은 기본 브랜치에서 사용된 프로그래밍 언어를 감지합니다. 이 정보는 Project overview 페이지에 표시됩니다.

새 파일이 추가되면 이 정보를 업데이트하는 데 최대 5분이 걸릴 수 있습니다.
저장소 언어 추가#
모든 파일이 Project overview 페이지에서 감지되고 나열되는 것은 아닙니다. 문서, 벤더 코드, 대부분의 마크업 언어는 제외됩니다. 지원되는 파일과 언어 목록을 보려면 지원되는 데이터 유형을 참조하세요.
이 동작을 변경하고 기본 설정에 추가 파일 유형을 포함하려면:
-
저장소의 루트 디렉토리에서
.gitattributes라는 파일을 만듭니다. -
GitLab에게 특정 파일 유형을 포함하도록 지시하는 줄을 추가합니다. 예를 들어
.proto파일을 활성화하려면 다음을 추가합니다:*.proto linguist-detectable=true
이 기능은 과도한 CPU를 사용할 수 있습니다. 문제가 발생하면 과도한 CPU 사용 문제 해결 섹션을 참조하세요.
저장소 기여자 분석#
시간에 따른 선택한 프로젝트 브랜치에 대한 커밋 수가 포함된 선 그래프와 각 프로젝트 멤버의 커밋 수가 포함된 선 그래프를 볼 수 있습니다. 자세한 내용은 기여자 분석을 참조하세요.
저장소 히스토리 그래프#
저장소 그래프는 브랜치와 머지를 포함한 저장소 네트워크의 시각적 히스토리를 표시합니다. 이 그래프는 저장소의 변경 흐름을 확인하는 데 도움이 됩니다.
저장소 히스토리 그래프를 보려면 프로젝트의 Code > Repository graph로 이동합니다.

저장소 경로 변경#
저장소 경로가 변경되면 GitLab은 이전 위치에서 새 위치로의 리다이렉트로 전환을 처리합니다.
사용자 이름 변경, 그룹 경로 변경 또는 저장소 이름 변경 시:
- 네임스페이스 아래의 프로젝트 등 모든 것에 대한 URL이 새 URL로 리다이렉트됩니다.
- 네임스페이스 아래 프로젝트의 Git 원격 URL이 새 원격 URL로 리다이렉트됩니다. 위치가 변경된 저장소에 푸시하거나 풀할 때 원격을 업데이트하라는 경고 메시지가 표시됩니다. 이름 변경 후에도 자동화 스크립트나 Git 클라이언트는 계속 작동합니다.
- 리다이렉트는 원래 경로가 다른 그룹, 사용자 또는 프로젝트에 의해 사용되지 않는 한 사용 가능합니다.
- API 리다이렉트는 명시적으로 따라야 할 수 있습니다.
경로를 변경한 후 다음 리소스의 기존 URL을 업데이트해야 합니다:
include:component를 제외한 Include 구문, 그렇지 않으면 파이프라인이 구문 오류로 실패합니다. CI/CD 컴포넌트 참조는 리다이렉트를 따를 수 있습니다.- 숫자 네임스페이스 및 프로젝트 ID 대신 인코딩된 경로를 사용하는 네임스페이스 API 호출.
- Docker 이미지 참조.
- 프로젝트 또는 네임스페이스를 지정하는 변수.
CODEOWNERS파일.
관련 주제#
문제 해결#
저장소에 대한 푸시 순서 검색#
커밋이 "사라진" 것처럼 보이면 저장소에 대한 푸시 순서를 검색합니다.
이 Stack Overflow 스레드는 강제 푸시 없이 이 상태에 도달하는 방법을 설명합니다. 또 다른 원인은 git reset 작업에서 HEAD ref를 변경하는 잘못 구성된 서버 훅일 수 있습니다.
대상 브랜치에 대한 샘플 코드의 출력을 확인하면 출력을 단계별로 살펴볼 때 from/to 커밋의 불연속성이 보입니다.
각 새 푸시의 commit_from은 이전 푸시의 commit_to와 동일해야 합니다.
그 순서의 중단은 하나 이상의 커밋이 저장소 히스토리에서 "사라진" 것을 나타냅니다.
Rails 콘솔을 사용하여 다음 예시는 마지막 100개의 푸시를 확인하고 commit_from 및 commit_to 항목을 출력합니다:
p = Project.find_by_full_path('project/path')
p.events.pushed_action.last(100).each do |e|
printf "%-20.20s %8s...%8s (%s)", e.push_event_payload[:ref], e.push_event_payload[:commit_from], e.push_event_payload[:commit_to], e.author.try(:username)
end ; nil
4번 줄에서 순서가 중단된 예시 출력:
master f21b07713251e04575908149bdc8ac1f105aabc3...6bc56c1f46244792222f6c85b11606933af171de root
master 6bc56c1f46244792222f6c85b11606933af171de...132da6064f5d3453d445fd7cb452b148705bdc1b root
master 132da6064f5d3453d445fd7cb452b148705bdc1b...a62e1e693150a2e46ace0ce696cd4a52856dfa65 root
master 58b07b719a4b0039fec810efa52f479ba1b84756...f05321a5b5728bd8a89b7bf530aa44043c951dce root
master f05321a5b5728bd8a89b7bf530aa44043c951dce...7d02e575fd790e76a3284ee435368279a5eb3773 root
오류: Xcode가 저장소 클론 실패#
GitLab은 허용된 SSH 키 목록을 제한하는 옵션을 제공합니다.
SSH 키가 허용된 목록에 없으면 The repository rejected the provided credentials와 같은 오류가 발생할 수 있습니다.
이 문제를 해결하려면 지원되는 SSH 키 유형에 대한 지침을 충족하는 새 SSH 키 쌍을 만듭니다. 지원되는 SSH 키를 생성한 후 저장소를 다시 클론해 보세요.
