---
title: "대용량 파일 업로드(LFS) 사용"
slug: "sourcecommit-use-lfs"
tags: ["SourceCommit"]
updated: 2026-05-21T09:01:43Z
published: 2026-05-21T09:03:15Z
canonical: "guide-gov.ncloud-docs.com/sourcecommit-use-lfs"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://guide-gov.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 대용량 파일 업로드(LFS) 사용

<p class="platform-info type-classic-vpc">Classic/VPC 환경에서 이용 가능합니다.</p>

Git 리포지토리에 업로드할 수 있는 파일 용량은 최대 500 MB로 제한되지만 Git LFS(Large File System)를 활용하면 Git 리포지토리에서 대용량 파일(파일 당 최대 5 GB)의 버전 관리를 수행할 수 있습니다. Git LFS는 대용량 파일에 대한 메타데이터(metadata)만 리포지토리에 커밋하고 실제 파일 내용은 별도의 원격 저장소에 저장하는 방식으로 작동합니다.

## Git LFS 사용을 위한 요구 사항<a name="GitLFS사용을위한요구사항"></a>
Git LFS를 이용하려면 Git 클라이언트와 Git LFS를 로컬 PC에 설치해 주십시오.
* [GIT 공식 사이트](https://git-scm.com/downloads/guis){target="_blank"}에서 Git 클라이언트 설치 파일을 다운로드해 설치하고 자세한 사용법을 확인해 주십시오.
* [GIT LFS 공식 사이트](https://git-lfs.github.com){target="_blank"}에서 Git LFS 설치 파일을 다운로드해 설치하고 자세한 사용법을 확인해 주십시오.
* Git LFS는 HTTPS 연결만을 지원하며 SSH 연결은 지원하지 않습니다.

::: (info) (참고)
* 공통 프로젝트를 위해 Git LFS가 적용된 리포지토리를 공유하는 경우 모든 프로젝트 구성원이 로컬 PC에 Git LFS를 설치하고 Git LFS의 작동 원리와 사용법을 숙지하도록 해 주십시오.
* Git LFS가 설치되지 않은 로컬 PC에서는 LFS 기능을 이용한 대용량 파일 관리 및 파일 잠금을 수행할 수 없습니다.
* Git LFS를 다운로드하고 설치한 후에는 다음과 같이 작업 중인 리포지토리 경로에서 Git LFS를 초기화해 주십시오.
    ```Bash
    $ git lfs install

    Git LFS initialized.
    ```
:::

## 대용량 파일 업로드<a name="대용량파일업로드"></a>
Git LFS를 이용해 대용량 파일을 업로드하는 방법은 다음과 같습니다.

이 사용 가이드에서는 로컬 리포지토리에서 Git LFS를 초기화한 후 특정 파일에 대해 트래킹을 설정하고 원격 리포지토리로 업로드(push)하는 방법을 간략한 예제로 설명합니다. Git LFS 사용 방법에 대한 자세한 내용은 [GIT LFS 공식 사이트](https://git-lfs.github.com){target="_blank"}를 참고해 주십시오.


1. 로컬 PC에서 Git Client를 실행한 후 작업할 리포지토리 경로로 이동해 주십시오.
2. Git LFS 초기화를 수행해 주십시오.
    ```Bash
    $ git lfs install

    Git LFS initialized.
    ```
3. 업로드할 대용량 파일에 트래킹을 설정한 후 `.gitattributes` 파일을 커밋 목록에 추가해 주십시오.
    * 와일드카드(*)를 이용해 복수 파일을 지정할 수도 있습니다.
    * `.gitattributes` 파일에는 파일에 대한 트래킹 내역이 기록됩니다.
    ```Bash
    $ git lfs track "*.psd"
    Tracking "*.psd"

    $ git add .gitattributes
    ```
4. 업로드할 대용량 파일을 커밋한 후 리모트 리포지토리로 업로드(push)해 주십시오.
    ```Bash
    $ git add sample.psd

    $ git commit -m "Added design file"

    $ git push origin master
    ```

::: (info) (참고) 
* 대용량 파일을 업로드하는 중 시간 초과(i/o timeout) 오류 등이 발생하는 경우 다음과 같이 대기 시간을 연장할 수 있습니다.
    ```Bash
    $ git config lfs.activitytimeout 300
    ```
* 파일 업로드가 완료된 후에는 SourceCommit 리포지토리의 **[Code]** 탭에서 트래킹이 설정된 대용량 파일이 LFS 형식으로 저장된 것을 확인할 수 있습니다.  
:::

## 파일 잠금<a name="파일잠금"></a>
Git LFS의 파일 잠금(lock) 기능을 이용하면 특정 계정을 사용하는 경우에만 잠긴 파일을 수정하거나 업로드할 수 있도록 설정할 수 있습니다.

::: (info) (참고)
* 파일 잠금 기능은 Git LFS 2.0 이후 버전에서만 사용할 수 있습니다.
* Git 클라이언트가 파일의 잠금 상태를 올바르게 인식하도록 하려면 사용자의 로컬 PC 리포지토리에서 파일 잠금 기능을 설정해 주십시오.
:::

파일 잠금 기능을 설정하는 방법은 다음과 같습니다.

```Bash
$ git config lfs.{Git URL}/info/lfs.locksverify true
```
::: (info) (참고)
* 파일 잠금 기능을 설정한 계정에서만 파일 잠금 기능을 해제할 수 있습니다.
* 잠금 기능 미설정 시 다른 계정으로 잠긴 파일을 업로드할 때에도 다음 경고 메시지와 함께 업로드가 실행되는 등 파일 잠금 기능이 올바르게 작동하지 않을 수 있습니다.

    ```Bash
    $ git push origin master

    Locking support detected on remote "origin". Consider enabling it with:
    $ git config lfs.{Git URL}/info/lfs.locksverify true
    Unable to push locked files:

    test.txt - psr (refs: master)
    WARNING: The above files would have halted this push.
    ```
:::

### 파일 잠금 사용 예<a name="파일잠금사용예"></a>

파일 잠금을 활성화한 후에는 파일 잠금 기능을 설정한 서브 계정에서만 파일을 업로드하거나 파일의 잠금을 해제할 수 있습니다.

* '서브 계정 1'에서 잠금 설정

    ```Bash
    $ git lfs lock "test.txt"
    Locked test.txt

    $ git lfs locks
    test.txt {sub_account_name} ID:15
    ```
* '서브 계정 2'에서 파일 업로드(오류 발생)

    ```Bash
    $ git add test.txt

    $ git commit -m "Modify file"

    $ git push origin master
    Unable to push locked files:
    * test.txt - {sub_account_name} (refs: master)
    ERROR: Cannot update locked files.
    ```
### 파일 잠금 설정 해제 예<a name="파일잠금설정해제예"></a>

* '서브 계정 1'에서 잠금 설정 해제(해제 성공)

    ```Bash
    $ git lfs unlock test.txt
    Unlocked test.txt
    ```
* '서브 계정 2'에서 잠금 설정 해제(오류 발생)

    ```Bash
    $ git lfs unlock test.txt
    test.txt is locked {Sub Account1}
    ```
 
## Git LFS Object Storage 연동<a name="GitLFSObjectStorage연동"></a>

Object Storage의 버킷을 SourceCommit 서비스와 연동하여 LFS 업로드 파일들을 고객의 Object Storage 버킷으로 업로드할 수 있습니다.

::: (info) (참고)
* Git LFS가 사용되지 않는 업로드, 다운로드 데이터에 대해서는 Object Storage 버킷에 저장하지 않습니다.
:::

### Object Storage 연동 설정<a name="ObjectStorage연동설정"></a>

SourceCommit 서비스의 Object Storage 연동 설정 방법은 다음과 같습니다

1. 네이버 클라우드 플랫폼 콘솔에서 **Menu** > **Services** > **Developer Tools** > **SourceCommit** 메뉴를 차례대로 클릭해 주십시오.
2. SourceCommit 화면에서 **[Object Storage 연동 설정]** 버튼을 클릭해 주십시오.
3. Object Storage 연동 설정 팝업 창에서 연동할 버킷을 선택해 주십시오.
4. Object Storage 연동 설정 팝업 창에서 **[설정]** 버튼을 클릭해 주십시오.

::: (warning) (주의)
* 연동 설정된 버킷이 삭제 될 경우 자동으로 연동이 해제됩니다.
* Object Storage 콘솔 등을 통한 데이터 직접 수정을 제한하고 있지 않으며, 수정할 경우 기능이 제대로 동작하지 않을 수 있습니다.
:::

::: (info) (참고)
* 해당 버킷에 대해 연동 활성화 중인 리포지토리가 존재한다면 버킷을 변경할 수 없습니다.
* 잠김 버킷의 경우 버킷 연동을 지원하지 않습니다.
:::

### 리포지토리 Object Storage 버킷 활성화<a name="리포지토리ObjectStorage버킷활성화"></a>

리포지토리에 Object Storage의 버킷을 연동하려면 리포지토리 설정에서 버킷 사용을 활성화해야 합니다. 버킷 활성화 방법은 다음과 같습니다.

* "리포지토리 생성", "리포지토리 복사"를 통해 리포지토리 시작 시 설정하는 방법은 [SourceCommit 시작](/docs/sourcecommit-start#2스토리지상품연동1)을 참조해 주십시오.
* "리포지토리 설정"을 통해 설정하는 방법은 [리포지토리 관리](/docs/sourcecommit-use-manage#ObjectStorage활성화설정)를 참조해 주십시오.

::: (info) (참고)
* 리포지토리의 Object Storage 버킷 활성화 설정을 활성화하기 위해서는 SourceCommit 서비스가 Object Storage 버킷 연동상태여야 합니다.
* 리포지토리의 Object Storage 버킷 활성화 상태에서 비활성화가 되어도 기존 버킷 안에 있던 저장했던 데이터는 삭제되지 않습니다.
:::

### 기존 LFS 사용 고객이 버킷에 업로드하는 방법<a name="기존LFS사용고객이버킷에업로드하는방법"></a>

기존 LFS 사용 고객이 Object Storage 버킷을 활성화하여 저장소를 옮기는 방법은 다음과 같습니다.

::: (warning) (주의)
안전한 이관을 위해 데이터를 로컬에 미리 백업하는 것을 권장합니다.
:::

1. 기존 저장소에 저장된 전체 LFS 바이너리 데이터를 로컬에 다운로드해 주십시오.
    ```Bash
    $ GIT_LFS_SKIP_SMUDGE=0 git clone <repository-url>
    or
    $ git lfs pull (if repository already exist)
    ```
2. 리포지토리의 Object Storage 버킷 연동을 활성화해 주십시오.
3. LFS track 상태의 전체 바이너리 데이터를 Object Storage로 다시 업로드해 주십시오.
   ```Bash
   $ git lfs push origin --all
   ```
4. Object Storage 버킷 콘솔을 통해 업로드된 데이터를 확인해 주십시오.
