파일 잠금
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
파일 잠금은 여러 사람이 같은 파일을 동시에 편집하지 못하게 막아 머지 충돌을 피하는 데 도움이 됩니다. GitLab은 두 가지 유형의 파일 잠금을 지원합니다: 기본 브랜치 잠금은 프로젝트 설정에서 지정한 기본 브랜치에만 적용됩니다.
파일 잠금은 여러 사람이 같은 파일을 동시에 편집하지 못하게 막아 머지 충돌을 피하는 데 도움이 됩니다. 파일 잠금은 디자인 파일, 동영상, 그 밖의 비텍스트 콘텐츠처럼 머지할 수 없는 바이너리 파일에 특히 유용합니다.
GitLab은 두 가지 유형의 파일 잠금을 지원합니다:
- 배타적 파일 잠금: Git LFS와
.gitattributes를 사용해 명령줄에서 적용합니다. 이 잠금은 모든 브랜치에서 잠긴 파일의 수정을 막습니다. Free, Premium, Ultimate 티어에서 사용할 수 있습니다. 자세한 내용은 배타적 파일 잠금을 참고합니다. - 기본 브랜치 파일 및 디렉터리 잠금: GitLab UI에서 적용합니다. 이 잠금은 기본 브랜치에서만 파일과 디렉터리의 수정을 막습니다.
기본 브랜치 파일 및 디렉터리 잠금#
기본 브랜치 잠금은 프로젝트 설정에서 지정한 기본 브랜치에만 적용됩니다. 이 잠금은 다른 브랜치의 협업자 워크플로를 막지 않으면서 기본 브랜치의 안정성을 유지하는 데 도움이 됩니다.
사용자가 파일이나 디렉터리를 잠그면:
- 잠금을 만든 사용자만 기본 브랜치에서 해당 파일이나 디렉터리를 수정할 수 있습니다.
- 다른 사용자에게 잠긴 파일이나 디렉터리는 기본 브랜치에서 읽기 전용입니다.
- 기본 브랜치의 잠긴 파일이나 디렉터리를 직접 변경하는 작업은 차단됩니다.
- 잠긴 파일이나 디렉터리를 수정하는 머지 리퀘스트는 기본 브랜치로 머지할 수 없습니다.
기본 브랜치가 아닌 브랜치에서는 모든 사용자가 잠긴 파일과 디렉터리를 수정할 수 있습니다. 이러한 파일과 디렉터리에는 잠금 상태가 표시됩니다. 이를 통해 팀원은 다른 브랜치의 워크플로를 제한받지 않으면서 진행 중인 작업을 파악할 수 있습니다.
파일 잠금은 포크 동기화 과정에서도 우회됩니다. 업스트림 프로젝트에서 포크를 업데이트하면 포크의 잠긴 파일이 업스트림 프로젝트의 변경 사항으로 덮어써질 수 있습니다.
권한#
기본 브랜치 잠금을 만들거나 보거나 관리하려면 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한이 있어야 합니다. 자세한 내용은 역할 및 권한을 참고합니다.
파일 또는 디렉터리 잠금#
히스토리
- GitLab 17.10에서
blob_overflow_menu라는 기능 플래그와 함께 도입. 기본적으로 비활성화됨. - GitLab 18.1에서 일반 공개. 기능 플래그
blob_overflow_menu제거됨. - GitLab 19.4에서
repository_lock_information이라는 기능 플래그와 함께 잠금 버튼 변경. 기본적으로 활성화됨.
이 기능의 사용 여부는 기능 플래그로 제어합니다. 자세한 내용은 히스토리를 참고합니다.
파일 또는 디렉터리를 잠그려면:
- 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 잠그려는 파일 또는 디렉터리로 이동합니다.
- 오른쪽 위에서 잠금을 선택합니다.
- 확인 대화 상자에서 잠금을 선택합니다.
버튼이 잠김으로 바뀝니다. 파일이나 디렉터리를 누가 언제 잠갔는지 보려면 잠김을 선택합니다.
디렉터리 안의 파일이나 디렉터리가 이미 잠겨 있으면 그 디렉터리를 잠글 수 없습니다. 상위 디렉터리가 잠겨 있으면 해당 디렉터리의 잠금을 해제할 수 없습니다. 두 경우 모두 버튼에 잠김이 표시되고, 세부 정보에 관련 잠금이 설명됩니다. 잠긴 파일이나 디렉터리를 보려면 잠금 보기를 선택합니다.
잠금이 표시되지 않으면 해당 파일이나 디렉터리를 잠글 수 있는 권한이 없는 것입니다.
잠긴 파일 보기#
잠긴 파일을 보려면:
- 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 코드 > 잠긴 파일을 선택합니다.
잠긴 파일 페이지에는 Git LFS 배타적 잠금이나 GitLab UI로 잠근 모든 파일이 표시됩니다.
파일 잠금 제거#
사전 요구 사항:
- 다음 중 하나에 해당해야 합니다:
- 잠금을 만든 사용자입니다.
- 프로젝트에 대한 Maintainer 또는 Owner 권한이 있습니다.
잠금을 제거하려면:
- 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 잠금을 해제하려는 파일 또는 디렉터리로 이동합니다.
- 잠김을 선택합니다.
- 파일 잠금 해제 또는 디렉터리 잠금 해제를 선택합니다.
- 확인 대화 상자에서 잠금 해제를 선택합니다.
- 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 코드 > 잠긴 파일을 선택합니다.
- 잠금을 해제하려는 파일 오른쪽에서 잠금 해제를 선택합니다.
- 확인 대화 상자에서 확인을 선택합니다.
배타적 파일 잠금을 제거하려면 파일 잠금 및 잠금 해제를 참고합니다.
머지 리퀘스트 검사 및 잠금 소유권#
잠긴 파일이나 디렉터리에 대한 변경 사항이 포함된 머지 리퀘스트가 머지되도록 설정되면 GitLab은 머지 리퀘스트 작성자가 잠금 소유자인지 확인합니다. GitLab은 개별 커밋 작성자는 확인하지 않습니다.
예를 들어:
- 머지 리퀘스트 작성자가 파일이나 디렉터리를 잠근 사용자와 같으면 머지 리퀘스트를 머지할 수 있습니다.
- 머지 리퀘스트 작성자가 잠금 소유자와 다르면 머지 리퀘스트가 차단됩니다.
머지 리퀘스트 작성자가 아닌 사용자도 잠긴 파일이나 디렉터리를 업데이트하거나 변경하는 내용을 머지 리퀘스트 브랜치에 푸시할 수 있습니다. 잠금 검사는 머지 리퀘스트 작성자만 확인하므로 머지 리퀘스트는 차단되지 않습니다.
잠긴 파일에 대한 무단 변경을 방지하려면:
- 머지 전 검토를 요구하는 머지 리퀘스트 승인 규칙을 사용합니다.
- 잠긴 파일에 대한 머지 리퀘스트를 모니터링하여 승인된 변경 사항만 포함되도록 합니다.
- 워크플로에서 기존 머지 리퀘스트 브랜치에 푸시할 수 있는 사람이 누구인지 고려합니다.