새소식

프로그래밍/Issue

[Git/Sourcetree] Git LFS에 대해 알아보자

  • -

일전에 Git LFS로 터진 버그로 글을 쓴 적이 있다.

지난 글 이후에도 LFS를 사용하다가 버그가 발생한 경우가 있었는데
이 때문에 Git LFS를 조금 더 자세하게 알아보고 싶었다.

 

이 글에서는 LFS를 사용하면서 알아야 할 주의점이나
이슈들을 정리해둘 생각이다.

Git LFS를 사용하는 방법에 대해서는 올릴 생각은 있지만
이미 여럿 많은 글들이 올라와있고 참고하면 되기 때문에
차후에 생각해보려고 한다.


Git LFS 용도

프로젝트를 협업하면서 유용하게 쓰이는 Git과 Github.

하지만 Git도 데이터를 관리하는데 한계가 존재한다.

이미지 파일, 동영상, 3D 모델링 파일처럼 대용량의 파일의 경우
Git으로 단순히 올릴 수 없다.

더보기

이러한 파일을 바이너리 파일이라고 하는데,
ASCII 코드로 처리되는 텍스트 파일과 달리
컴파일러와 같이 이진수로 변환해서 exe파일을 출력하는 것처럼
이진법으로 저장된 파일을 말한다.

텍스트파일에 최적화된 Git에게있어
대용량 파일이 수시로 변화하게 된다면
그만큼 Git은 수정된 파일을 계속해서 복사하고 처리한다고 한다.

이 경우, repository에 계속해서 스냅샷이 찍혀
저장되면서 용량이 어마무시하게 증가한다.

때문에 Git에서는 일정 용량 이상의 데이터의 경우,
repository에 올릴 수 없도록 기본값으로 막아두었다.

이때 사용하는게 LFS이다.


Git LFS의 주의점

Git LFS를 사용하면서 주의해야 할 여러가지 이슈를 정리해보았다.

지금 당장 생각나는 것만 몇가지 여기에 언급해두고
나중에 발생하는 버그의 경우엔 따로 글을 작성해서
이 글에 언급해두겠다.

 

Git LFS는 repository의 시작부터 설정할 것.

LFS를 적용하려는 repository가 한번이라도 push 한 적이 있다면
해당 프로젝트에 LFS를 사용하기는 권장하지 않는다.
차라리 repository를 새로 파서 LFS를 적용하고 파일을 올린다면 모를까.

 

File Locking을 해제할 것.

필자는 이전에 이미 생성되고 사용하던 repository에
LFS를 적용해서 사용했던 경험이 있다.

덕분에 여러 버그를 만날 수 있었는데
그 중에서도 일주일~한달을 애먹었던 버그가 있었다.

이 이슈는 다른 글에서 다뤘으니 아래 언급한다.

https://onionisdelicious.tistory.com/73

 

[Programming/Issue] LFS locking 과 관련한 에러

최근 Sourcetree 를 이용해서 버전관리를 하면서 발생한 상황이다. Unity 프로젝트에 Git LFS 를 사용해서 파일을 커밋하고 푸쉬했는데, 대략 2시간 가까이 푸쉬 작업을 진행하더니 다음과 같은 에러를

onionisdelicious.tistory.com

 

Git LFS를 다른 사람과 함께 사용할 경우, 꼭 다시 한번 체크하자.

위 File Locking의 주요 원인으로 알아낸 현상이다.

이를테면 A컴퓨터에서 열심히 작업을 하고
Git과 LFS를 사용해서 Git hub에 Push했다고 생각하자.

이걸 B컴퓨터에서 Pull 해서 사용하려고 했을때
데이터를 사용하려고 하면
대용량 파일들이 전부 적용이 안되어있거나 싸그리 날아가 있는 상활을 볼 수 있다.

이 현상의 원인을 분명하게 파악할 수 없었으나
대충 생각해낸 원인은 다음과 같다.

1. 대용량 파일을 pull 하기 위해 LFS Pull을 하지 않았다.
이 경우, LFS Pull 이라는 기능이 sourcetree에 존재했기에 생각해낸 점이다.
대용량 파일의 경우 따로 데이터를 불러와야 한다든지 그런게 있지 않나 생각한다.
2. 기존 repo에 LFS를 적용한 점.
LFS를 사용하면서 적극적으로 말리는 상황인데,
이때문에 이런 버그가 발생한 걸지도 모른다.
3. 데이터를 Push하지 않았다.
1번과 같이 Push하는 버튼이 따로 존재해서 그 작업을 걸쳐야 하는가?
이런 의문이 들었다.

때문에 Git LFS를 다른 협업자와 사용한다면
신중하게 알아두고 사용하자.

필자는 여러 PC를 두루두루 사용하면서
Git LFS로 데이터를 옮기면서 사용하려 했으나,
버그 발생으로 인해서 외장하드로 데이터를 옮기는 수작업을 겪어야만 했다.

'프로그래밍 > Issue' 카테고리의 다른 글

[Programming/Issue] LFS locking 과 관련한 에러  (0) 2020.10.02
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.