파일 잠금
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
파일 잠금은 여러 사람이 같은 파일을 동시에 편집하는 것을 방지하여 머지 충돌을 피하는 데 도움이 됩니다. GitLab은 두 가지 유형의 파일 잠금을 지원합니다: 기본 브랜치 잠금은 프로젝트 설정에서 설정된 기본 브랜치에만 적용됩니다.
파일 잠금은 여러 사람이 같은 파일을 동시에 편집하는 것을 방지하여 머지 충돌을 피하는 데 도움이 됩니다. 파일 잠금은 머지할 수 없는 바이너리 파일(디자인 파일, 동영상, 기타 비텍스트 콘텐츠)에 특히 유용합니다.
GitLab은 두 가지 유형의 파일 잠금을 지원합니다:
- 배타적 파일 잠금: Git LFS와
.gitattributes를 사용하여 명령줄을 통해 적용됩니다. 이 잠금은 모든 브랜치에서 잠긴 파일의 수정을 방지합니다. Free, Premium, Ultimate 티어에서 사용 가능합니다. 자세한 내용은 배타적 파일 잠금을 참조하세요. - 기본 브랜치 파일 및 디렉토리 잠금: GitLab UI를 통해 적용됩니다. 이 잠금은 기본 브랜치에서만 파일 및 디렉토리 수정을 방지합니다.
기본 브랜치 파일 및 디렉토리 잠금#
기본 브랜치 잠금은 프로젝트 설정에서 설정된 기본 브랜치에만 적용됩니다. 이 잠금은 다른 브랜치에서의 협력자 워크플로우를 차단하지 않으면서 기본 브랜치의 안정성을 유지하는 데 도움이 됩니다.
사용자가 파일이나 디렉토리를 잠글 때:
- 잠금을 만든 사용자만 기본 브랜치에서 파일이나 디렉토리를 수정할 수 있습니다.
- 다른 사용자에게 잠긴 파일이나 디렉토리는 기본 브랜치에서 읽기 전용입니다.
- 기본 브랜치의 잠긴 파일이나 디렉토리에 대한 직접 변경이 차단됩니다.
- 잠긴 파일이나 디렉토리를 수정하는 머지 리퀘스트는 기본 브랜치로 머지할 수 없습니다.
비기본 브랜치에서는 모든 사용자가 잠긴 파일과 디렉토리를 여전히 수정할 수 있습니다. 잠금 상태가 이러한 파일 및 디렉토리에 표시됩니다. 이를 통해 팀원들이 다른 브랜치에서의 워크플로우를 제한하지 않고 진행 중인 작업을 인식할 수 있습니다.
파일 잠금은 포크 동기화 중에도 우회됩니다. 상위 프로젝트에서 포크를 업데이트하면, 포크의 잠긴 파일이 상위 프로젝트의 변경 사항으로 덮어쓰일 수 있습니다.
권한#
기본 브랜치 잠금을 만들거나, 보거나, 관리하려면 프로젝트에 대한 개발자, 유지 관리자 또는 소유자 역할이 있어야 합니다. 자세한 내용은 역할 및 권한을 참조하세요.
파일 또는 디렉토리 잠금#
히스토리
- Introduced in GitLab 17.10 with a flag named
blob_overflow_menu. Disabled by default. - Generally available in GitLab 18.1. Feature flag
blob_overflow_menuremoved.
잠금 방법은 파일을 잠그는지 디렉토리를 잠그는지에 따라 다릅니다:
- 상단 메뉴에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 잠그려는 디렉토리로 이동합니다.
- 오른쪽 상단에서 잠금을 선택합니다.
- 확인 대화 상자에서 확인을 선택합니다.
디렉토리를 잠근 사용자를 보려면 잠금 아이콘 위에 마우스를 올립니다.
- 상단 메뉴에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 잠그려는 파일로 이동합니다.
- 오른쪽 상단에서 파일 이름 옆에 있는 작업 (⋮) > 잠금을 선택합니다.
- 확인 대화 상자에서 확인을 선택합니다.
잠금 옵션을 사용할 수 없거나 비활성화된 경우, 파일 또는 디렉토리를 잠글 수 있는 필수 권한이 없는 것입니다.
잠긴 파일 보기#
잠긴 파일을 보려면:
- 상단 메뉴에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 코드 > 잠긴 파일을 선택합니다.
잠긴 파일 페이지는 Git LFS 배타적 잠금이나 GitLab UI로 잠긴 모든 파일을 표시합니다.
파일 잠금 제거#
사전 요구 사항:
- 다음 중 하나여야 합니다:
- 잠금을 만든 사용자.
- 프로젝트에 대한 유지 관리자 또는 소유자 역할이 있는 사용자.
잠금을 제거하려면:
- 상단 메뉴에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 잠금 해제하려는 파일로 이동합니다.
- 잠금 해제를 선택합니다.
- 확인 대화 상자에서 잠금 해제를 선택합니다.
- 상단 메뉴에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 코드 > 잠긴 파일을 선택합니다.
- 잠금 해제하려는 파일 오른쪽에서 잠금 해제를 선택합니다.
- 확인 대화 상자에서 확인을 선택합니다.
배타적 파일 잠금을 제거하려면 파일 잠금 및 잠금 해제를 참조하세요.
머지 리퀘스트 검사 및 잠금 소유권#
잠긴 파일이나 디렉토리에 대한 변경 사항이 포함된 머지 리퀘스트가 머지로 설정되면, GitLab은 머지 리퀘스트 작성자가 잠금 소유자인지 확인합니다. GitLab은 개별 커밋 작성자를 확인하지 않습니다.
예를 들어:
- 머지 리퀘스트 작성자가 파일이나 디렉토리를 잠근 사용자와 동일한 경우, 머지 리퀘스트를 머지할 수 있습니다.
- 머지 리퀘스트 작성자가 잠금 소유자와 다른 경우, 머지 리퀘스트가 차단됩니다.
머지 리퀘스트 작성자가 아닌 다른 사용자가 잠긴 파일이나 디렉토리를 업데이트하거나 변경하는 변경 사항을 머지 리퀘스트 브랜치에 푸시할 수 있습니다. 잠금 확인은 머지 리퀘스트 작성자만 고려하므로 머지 리퀘스트는 차단되지 않습니다.
잠긴 파일에 대한 무단 변경을 방지하려면:
- 머지 전에 검토를 요구하는 머지 리퀘스트 승인 규칙을 사용합니다.
- 잠긴 파일에 대한 머지 리퀘스트를 모니터링하여 인가된 변경 사항만 포함되는지 확인합니다.
- 워크플로우에서 기존 머지 리퀘스트 브랜치에 푸시할 수 있는 권한이 있는 사람을 고려합니다.
