git은 단일 파일이 100mb를 초과하는경우에는 일반 commit으로는 진행이 어렵다

이때 무료로 2gb까지 지원하는 git lfs를 설치 및 사용하면 파일 업로드가 가능하다

 

https://newsight.tistory.com/330

 

Git LFS (Large File Storage) 사용하기

Git의 용량제한과 LFS기본적으로 git은 여러개의 작은 소스코드 파일들을 위한 버전 컨트롤 시스템(VCS)이다. 따라서 Github의 경우 50Mb부터 Warning이 표시되고, 100Mb부터는 push시 Error가 발생한다. 그럼

newsight.tistory.com

https://miiingo.tistory.com/333

 

[Git] Ubuntu 16.04에서 Git LFS(Large File Storage) 사용법

Git LFS란? 프로젝트를 GitLab에 올리려고 했더니 다음과 같은 오류가 발생했다. remote: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual "git lfs push --all". To http://localhost:9010/honeybee/issuer-rest

miiingo.tistory.com

 

 

로컬에 설치

# git lfs 설치(git bash)
git lfs install
# git lfs가 추적할 파일 확장자 지정
git lfs track "*.zip"
# .gitattributes 생성
git add .gitattributes
# .gitattributes 확인
cat .gitattributes 
#*.zip filter=lfs diff=lfs merge=lfs -text

# git config 설정
git config lfs.allowincompletepush true

# git add/commit push 실행

 

서버에서 설치

https://packagecloud.io/github/git-lfs/install#bash-deb

 

github/git-lfs - Installation · packagecloud

Installation instructions for the github/git-lfs package repository.

packagecloud.io

 

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt install git-lfs

# sudo 권한이 없을 경우
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
apt install git-lfs

 

 

 

 lfs설정이 다 된뒤에 필요한곳에서 git clone으로 가져와야지만 lfs가 설정된 상태로 가져와짐!!!

기존에 clone으로 가져온 repo가 있다면 삭제 후 다시 가져오기

 


 

commit한개당 파일 용량이 누적으로 적용되므로 변화하는 데이터를 적용하면 용량이 많이 필요

 

제거방법

https://blog.syki66.com/2021/04/09/git-lfs-untrack/

 

[git lfs untrack] 깃, lfs 추적 해제, 원격 저장소 lfs 저장공간 확보 | syki66 blog

How to untrack git lfs files

blog.syki66.com

 

 

npm config get registry

확인후 기본 레지스트리 아닐시 변경 필요

npm config set registry https://registry.npmjs.org/

'개발환경 > GIT' 카테고리의 다른 글

Git - fatal: refusing to merge unrelated histories  (0) 2023.02.13

이 상황을 해결하는 방법에는

  1. 원격 저장소를 삭제하고 다시 만든다. (readme.md 파일을 없애고 다시 저장소를 만든다.)
  2. fetch나 pull 명령어로 원격 저장소의 마지막 commit을 로컬 저장소의 commit로그의 맨 앞으로 받아온다.

2번 방법으로 해결하려 하면 아래와같은 에러가 뜬다.

 git pull origin master

-- fatal: refusing to merge unrelated histories

 

에러 내용은 원격 저장소의 master 브랜치에서 로컬 저장소의 FETCH_HEAD를 merge하는 것이 거부되었다.

commit 히스토리가 서로 관련이 없다는 뜻이다. 즉, 서로 관련성이 없기 때문에 merge할 수 없다는 것이다.

 

pull 명령어는 fetch + merge 작업을 한번에 처리하는 명령어이다. 현 상황은 fetch는 되었지만, merge가

되지 않은 상태이다.

기본적으로 merge는 원격 저장소와 로컬 저장소가 공통으로 가지고 있는 commit지점이 존재해야 한다.

그 지점부터 병합을 시도하기 때문이다. 애초에 공통되는 commit이 없기때문에 pull 명령어를 사용할 수

없는 것이다.

 

해결하기 앞서 상황을 이해하기 위해 pull과 fetch의 개념을 살펴보자.

fetch는 원격 저장소에 있는 내용을 가져오지만 자동으로 내 로컬 저장소에 merge하지 않는다.

원격 저장소의 내용을 확인만 하고 로컬에 merge하고 싶지 않을 때는 fetch를 사용한다.

 

HEAD에는 가장 마지막에 행해진 commit정보가 담긴다. 마찬가지로 FETCH_HEAD는 원격 저장소의

가장 최신 commit 이력이 담기게 된다.

FETCH_HEAD는 이름 없는 브랜치로 로컬에 가져오게 된다. 이 브랜치는 FETCH_HEAD로 checkout도

가능하다.

 

pull 명령어는 원격 저장소에 있는 내용을 가져올 뿐만 아니라, 자동으로 로컬 저장소에 merge한다.

즉, git pull 명령어는 git fetch + merge FETCH_HEAD인 셈이다.

 

복잡하고 긴 설명 끝에 결론은 어쨌든 연결되는 공통된 커밋 포인트가 없다는 것이다.

이 상황을 해결하기 위한 방법에도 2가지 방법이 존재하는데,

  1. git clone 명령어를 통해 원격 저장소를 복제해온다.
  2. pull 명령어에 옵션을 추가해 강제로 pull 한다.

두번째 방법을 택해 pull 명령어에 옵션을 줘서 가져오면 간단하게 해결된다.

git pull origin (branchname) --allow-unrelated-histories

 

출처 

https://jobc.tistory.com/177

 

git push, pull (fatal: refusing to merge unrelated histories) 에러

원격 저장소를 remote로 설정하고 바로 push를 하면 몇가지 오류가 발생할 수도 있다.예를 들어 아래와 같은 오류 메시지이다.12 ! [rejected] master -> master (non-fast-forward)error: failed to push some refs to 'https:

jobc.tistory.com

 

'개발환경 > GIT' 카테고리의 다른 글

git lfs (Large File System) 설치 및 동작하기  (0) 2025.03.25

+ Recent posts