- 저장소 생성
- 파일 저장소에 추가
- 저장소에 변경 사항 커밋
- 저장소 복제
- 저장소 소스 코드 다운로드
- 저장소 언어
- 저장소 기여자 분석
- 저장소 히스토리 그래프
- 저장소 경로 변경
- 관련 주제
- 문제 해결
저장소
저장소(repository)는 코드를 저장하고 변경하며, 버전 관리를 통해 변경 사항을 추적하는 곳입니다. 각 프로젝트에는 저장소가 포함되어 있으며, 저장소는 프로젝트 없이는 존재할 수 없습니다.
저장소 생성
저장소를 생성하려면:
- 프로젝트 생성 또는
- 기존 프로젝트를 포크합니다.
파일 저장소에 추가
파일을 저장소에 추가할 수 있습니다:
- 프로젝트를 생성할 때 또는
- 프로젝트를 생성한 후, 다음 옵션을 사용하여 추가할 수 있습니다:
- 웹 편집기.
- 사용자 인터페이스(UI).
- 명령줄 사용.
UI에서 파일 추가
GitLab UI에서 파일을 추가하거나 업로드하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 파일을 업로드할 디렉터리로 이동합니다.
- 디렉터리 이름 옆에서 플러스 아이콘()을 선택한 후 파일 업로드를 선택합니다.
- 파일을 끌어다 놓거나 업로드합니다.
- 커밋 메시지를 입력합니다.
- 변경 사항과 함께 병합 요청을 생성하려면 대상 브랜치에서 저장소의 기본 브랜치가 아닌 브랜치 이름을 입력합니다.
- 파일 업로드를 선택합니다.
저장소에 변경 사항 커밋
저장소의 브랜치에 변경 사항을 커밋할 수 있습니다. 명령줄을 사용할 때는 git commit
를 사용합니다.
통신 및 협업을 개선하거나, 파이프라인을 트리거하거나 건너뛸 때, 변경 사항을 되돌릴 때의 정보에 대해서는 커밋을 참조하십시오.
저장소 복제
다음을 사용하여 저장소를 복제할 수 있습니다:
- 명령줄:
- GitLab UI:
저장소 소스 코드 다운로드
저장소의 소스 코드를 다운로드하면 압축되어 아카이브 파일로 저장됩니다. 저장소에 저장된 소스 코드를 다운로드하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 파일 목록 위에서 Code를 선택합니다.
-
옵션 중에서 다운로드하려는 파일을 선택합니다:
-
소스 코드:
현재 보고 있는 브랜치의 소스 코드를 다운로드합니다. 사용 가능한 확장자:
zip
,tar
,tar.gz
, 그리고tar.bz2
. -
디렉터리:
특정 디렉터리를 다운로드합니다. 하위 디렉터리를 보고 있는 경우에만 표시됩니다. 사용 가능한 확장자:
zip
,tar
,tar.gz
, 그리고tar.bz2
. -
아티팩트:
최신 CI/CD 작업의 아티팩트를 다운로드합니다.
-
생성된 아카이브의 체크섬은 저장소 자체가 변경되지 않아도 변경될 수 있습니다. 예를 들어, Git이나 GitLab이 사용하는 타사 라이브러리가 변경되는 경우에 해당됩니다.
저장소 언어
GitLab은 기본 브랜치에서 사용되는 프로그래밍 언어를 감지합니다. 이 정보는 프로젝트 개요 페이지에 표시됩니다.
새로운 파일을 추가할 때 이 정보가 업데이트되기까지 최대 5분이 걸릴 수 있습니다.
저장소 언어 추가
모든 파일이 프로젝트 개요 페이지에 감지 및 표시되지는 않습니다. 문서, 공급 업체 코드 및 대부분의 마크업 언어가 제외됩니다. 지원되는 파일 및 언어 목록을 보려면 지원 데이터 유형을 참조하십시오.
이 동작을 변경하고 기본 설정에 추가 파일 유형을 포함하려면:
- 저장소의 루트 디렉터리에
.gitattributes
라는 파일을 생성합니다. -
GitLab에게 특정 파일 유형을 포함하도록 하는 줄을 추가합니다. 예를 들어,
.proto
파일을 활성화하려면 다음을 추가합니다:*.proto linguist-detectable=true
이 기능을 사용하면 과도한 CPU를 사용합니다. 문제가 발생하는 경우 저장소 언어: 과도한 CPU 사용 문제 해결 섹션을 참조하십시오.
저장소 기여자 분석
선택한 프로젝트 브랜치에 대한 커밋 수를 보여주는 라인 차트와 각 프로젝트 멤버의 커밋 수를 보여주는 라인 차트를 볼 수 있습니다. 자세한 내용은 기여자 분석을 참조하십시오.
저장소 히스토리 그래프
저장소 그래프는 저장소 네트워크의 시각적인 히스토리를 보여줍니다. 브랜치와 병합이 포함됩니다. 이 그래프를 통해 저장소에서 사용되는 Git 플로우 전략을 시각화하는 데 도움이 됩니다.
저장소 히스토리 그래프를 보려면 프로젝트의 Code > 저장소 그래프로 이동합니다.
저장소 경로 변경
저장소 경로가 변경되면 GitLab은 이전 위치에서 새 위치로의 전환을 처리합니다.
사용자를 이름 바꾸기, 그룹 경로 변경, 또는 저장소 이름 바꾸기할 때:
- 네임스페이스 및 프로젝트와 관련된 URL은 새 URL로 리디렉션됩니다.
- 네임스페이스 아래의 프로젝트의 Git 원격 URL은 새 원격 URL로 리디렉션됩니다. 저장소 위치가 변경된 경우 푸쉬하거나 풀할 때 원격을 업데이트하라는 경고 메시지가 표시됩니다. 자동화된 스크립트 또는 Git 클라이언트는 이름 변경 후에도 계속 작동합니다.
- 리디렉션이 새 경로를 사용하는 그룹, 사용자 또는 프로젝트에 의해 요청되지 않는 한 사용 가능합니다.
- API 리디렉트는 명시적으로 따라야할 수 있습니다.
경로를 변경한 후에는 다음 리소스의 기존 URL을 업데이트해야 합니다:
-
include:component
를 제외한 Include 문을 사용하여 파이프라인이 구문 오류로 실패하지 않도록 합니다. CI/CD 컴포넌트 참조는 리디렉트를 따를 수 있습니다. - 인코딩된 경로 대신 숫자 네임스페이스 및 프로젝트 ID를 사용하는 네임스페이스 API 호출.
- Docker 이미지 참조.
- 프로젝트 또는 네임스페이스를 지정하는 변수.
관련 주제
- VS Code용 GitLab Workflow 확장 기능
- 잠금 파일 및 변경 충돌 방지
- 저장소 API
- 파일
- 브랜치
- 디렉터리 생성
- 파일 이력 찾기
- 라인별 변경 사항 식별 (Git blame)
문제 해결
저장소에 푸시 순서 검색
커밋이 “사라졌다”고 생각된다면 저장소에 대한 푸시 순서를 검색하세요.
이 StackOverflow 기사
에서 강제 푸시 없이 이 상태에 도달하는 방법에 대해 설명하고 있습니다. 다른 원인으로는 git reset
작업에서 HEAD ref를 변경하는
서버 후크가 구성되지 않은 경우일 수도 있습니다.
다음 예제 코드 출력을 확인하면, 대상 브랜치에 대해 출력을 확인하며, 출력을 통해 from/to 커밋에서 연속성이 끊어져 있는 것을 확인할 수 있습니다.
새로운 푸시의 commit_from
은 이전 푸시의 commit_to
와 같아야 합니다. 해당 시퀀스의 중단은 하나 이상의 커밋이 저장소 기록에서 “손실”된 것을 나타냅니다.
레일즈 콘솔을 사용하여, 다음 예제는 마지막 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 키를 생성한 후에 저장소를 다시 복제해 보세요.