Git LFS

About_work·2024년 5월 21일
0

git

목록 보기
6/6
  • GitHub에서는 대용량 파일을 관리하기 위해 Git Large File Storage (Git LFS)를 사용

1. Git LFS 설치

  • 먼저, Git LFS를 설치해야 합니다. 운영체제에 따라 설치 방법이 다릅니다.

Windows

  • Git Bash를 열고 다음 명령어를 실행합니다:
git lfs install

macOS

  • Homebrew가 설치되어 있다면 다음 명령어를 실행합니다:
brew install git-lfs

Linux

  • 패키지 매니저를 사용하여 설치할 수 있습니다.
    • 예를 들어, Ubuntu에서는 다음 명령어를 실행합니다:
sudo apt-get install git-lfs

설치가 완료되면 Git LFS를 초기화합니다:

git lfs install

2. Git LFS 트랙 파일 설정

  • 이제 특정 파일 유형이나 개별 파일을 Git LFS로 관리하도록 설정합니다.
  • 예를 들어, 큰 바이너리 파일이나 미디어 파일을 추적하려면 다음과 같이 설정합니다:
git lfs track "*.psd"  # 예: .psd 파일
git lfs track "*.pcd"
git lfs track "*.zip"  # 예: .zip 파일
  • 이 명령어는 .gitattributes 파일에 트랙 정보를 추가합니다.

3. 파일 추가 및 커밋

  • Git LFS로 관리할 파일을 추가하고 커밋합니다:
git add .gitattributes
git add <large_file>
git commit -m "Add large file using Git LFS"

4. 리모트 리포지토리에 푸시

마지막으로, 리모트 리포지토리에 파일을 푸시합니다:

git push origin main  # 브랜치 이름에 따라 main 또는 master를 사용

5. 기존 리포지토리에 Git LFS 적용

이미 존재하는 리포지토리에 Git LFS를 적용하려면 다음 단계를 따릅니다:

  1. Git LFS 설치 및 초기화:

    git lfs install
  2. Git LFS로 추적할 파일 설정:

    git lfs track "*.psd"
    git lfs track "*.zip"
  3. 파일 재추가 및 커밋:

    git add .gitattributes
    git add <large_file>
    git commit -m "Migrate large files to Git LFS"
  4. 리포지토리에 푸시:

    git push origin main

6. Git LFS 상태 확인

Git LFS 상태를 확인하려면 다음 명령어를 사용합니다:

git lfs ls-files

이 명령어는 LFS로 추적되는 파일 목록을 보여줍니다.

요약

  • Git LFS 설치 및 초기화 (git lfs install)
  • 큰 파일 추적 설정 (git lfs track)
  • 파일 추가 및 커밋 (git add, git commit)
  • 리모트 리포지토리에 푸시 (git push)

이 단계를 따르면 큰 파일을 Git LFS를 사용하여 효율적으로 관리할 수 있습니다.


git clone != git lfs pull

  • git lfs pull 하면 용량 큰 모든 파일 pull
  • git lfs pull 명령어를 사용하여 특정 파일이나 특정 디렉토리의 LFS 파일만 다운로드할 수 있습니다.
  • 이를 위해서는 LFS 필터링 기능을 사용하면 됩니다.
  • git lfs pull 명령어는 --include--exclude 옵션을 제공하여 특정 파일이나 디렉토리만 선택적으로 가져올 수 있습니다.

특정 파일만 다운로드하기

  • 특정 파일만 LFS에서 가져오려면 --include 옵션을 사용합니다.
  • 예를 들어, largefile.bin 파일만 다운로드하려면 다음과 같이 합니다:
git lfs pull --include="largefile.bin"

특정 디렉토리만 다운로드하기

  • 특정 디렉토리의 파일만 다운로드하려면 --include 옵션에 디렉토리 경로를 지정합니다.
  • 예를 들어, bigfiles/ 디렉토리 내의 파일만 다운로드하려면 다음과 같이 합니다:
git lfs pull --include="bigfiles/*"

여러 파일 또는 디렉토리 다운로드하기

  • 여러 파일이나 디렉토리를 한 번에 다운로드하려면 쉼표(,)로 구분하여 나열합니다.
  • 예를 들어, largefile1.bin, largefile2.bin, 그리고 bigfiles/ 디렉토리의 파일을 모두 다운로드하려면 다음과 같이 합니다:
git lfs pull --include="largefile1.bin,largefile2.bin,bigfiles/*"

예제

  1. 특정 파일 다운로드:

    git lfs pull --include="path/to/file.ext"
  2. 특정 디렉토리 다운로드:

    git lfs pull --include="path/to/directory/*"
  3. 여러 파일 및 디렉토리 다운로드:

    git lfs pull --include="file1.ext,file2.ext,path/to/directory/*"

이렇게 하면 원하는 특정 파일이나 디렉토리만 선택적으로 다운로드할 수 있습니다. --include 옵션을 통해 필요한 파일만 다운로드하여 네트워크 대역폭과 저장소 공간을 절약할 수 있습니다.

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글