2016-11-24 7 views
0

큰 텍스트 데이터 파일을 추가하고자하는 리포지토리가 있습니다. 번호와 크기 (경우에 따라 최대 약 100MB까지)로 인해 git-lfs으로 파일을 추적하고 싶습니다. (git-scm's gitattributes documentation에 설명 된대로)git-lfs를 사용하여 적절한 줄 끝 정규화를 사용하여 텍스트 파일을 추적하는 방법은 무엇입니까?

나는 git lfs track data.txt와 같은 파일을 추가하고, .gitattributes 파일에 text=auto에 기본 -text을 (이진 파일 지정) 변경했습니다.

data.txt filter=lfs diff=lfs merge=lfs text=auto 

그리고 단지 확인하기 위해, 나는 refreshed the repository이이 날처럼 보이는 .gitattributes을 제공합니다. 그럼에도 불구하고 파일이 여전히 바이너리 개체로 추적되고 그에 따라 최종본 변환 필터가 체크 아웃에 적용되지 않은 것 같습니다 (즉, 파일이 체크 된 원래 줄 끝으로 체크 아웃 됨 - 에).

동일한 결과로 text=crlf (및 변형 text eol=crlf)도 시도해 보았습니다. 나는 git-lfs 사용에 대한 문서와 튜토리얼의 숫자를 보았다 그러나 그들 모두는 (... 같은 *.bin, images, audio files)

로 추적 파일을 만들 수있는 방법이 있나요 바이너리 파일을 추적 맞 것 같다 큰 텍스트 파일 (및 일반 텍스트 파일의 경우와 같이 줄 끝이 표준화 됨)은 git-lfs?

core.autocrlf=true 구성의 Windows 7 플랫폼에서 현재 Windows 2.10.2 (64 비트 버전)의 경우 git-lfs 1.5.2 및 git을 사용하고 있습니다.

답변

1

git-scm's gitattributes 좀 더 읽기 및 일부 땜질 후, 나는의 unix-to-dos conversion with sed 'Jonathan Leffler의 사용을 (내가 ~/.gitconfig에 있음) 자신의 필터 만들기'git-lfs를 기반으로 사용자 정의 필터를 정의하여이 기능을 달성 할 수 있었다 :

[filter "textlfs"] 
    clean = sed $'s/$/\\r/' %f | git-lfs clean 
    smudge = git-lfs smudge -- %f | sed $'s/\\r$//' 
    required = true 

다음 .gitattributes 항목 등으로 Windows 시스템에서 큰 텍스트 파일을 추적하는 데 사용할 수있는 :

data.txt filter=textlfs diff=textlfs merge=textlfs 

이 시간 리포지토리 사용자가이 사용자 지정 필터 정의를 포함하도록 강제합니다. 편의상 include it in a custom .gitconfig in your repository 일 수 있습니다 (사용자가 수동으로 정의를 git config --local include.path ../.gitconfig과 함께 포함해야 함). 이 기능은 Windows 플랫폼 사용자에게는 적합하지만 Linux 및 Mac과 같이 줄 끝이 다른 플랫폼의 사용자에게는 적합하지 않습니다. 더 복잡한 필터는 같은 것을 사용하여 다른 플랫폼을 처리하기 위해 구성 될 수있다 :

[filter "textlfs"] 
    clean = (if [ `uname -s` == "Linux" ]; then cat %f; else sed $'s/$/\\r/' %f; fi) | git-lfs clean 
    smudge = git-lfs smudge -- %f | (if [ `uname -s` == "Linux" ]; then cat; else sed $'s/\\r$//'; fi) 
    required = true 

마지막으로 당신의 큰 텍스트 파일은 일반적으로 업데이트 사이에 크게 변경하지 않는 것을 명심 또는 그들은 (파일 크기 제한을 초과 너무 크다 such as GitHub's) git can efficiently pack text files부터 표준 텍스트 파일 (예 : git-lfs 제외)로 이러한 텍스트 파일을 처리하는 것이 여전히 유용 할 수 있습니다.