메뉴 건너뛰기

XEDITION

프로그램

 

https://docs.github.com/ko/get-started/getting-started-with-git/configuring-git-to-handle-line-endings

 

 

줄 끝 정보

키보드에서 return 키를 누를 때마다 줄 끝이라는 보이지 않는 문자가 삽입됩니다. 운영 체제마다 줄 끝을 다르게 처리합니다.

Git 및 GitHub를 사용하여 프로젝트를 협업할 때, 예를 들어 Windows 머신에서 작업 중이고 협력자가 macOS에서 변경한 경우 Git에서 예기치 않은 결과가 발생할 수 있습니다.

줄 끝을 자동으로 처리하도록 Git을 구성하면 다른 운영 체제를 사용하는 사람과 효과적으로 협업할 수 있습니다.

줄 끝의 전역 설정

git config core.autocrlf 명령은 Git에서 줄 끝을 처리하는 방법을 변경하는 데 사용됩니다. 단일 인수를 사용합니다.

Windows에서는 구성에 true를 전달하기만 하면 됩니다. 예를 들면 다음과 같습니다.

$ git config --global core.autocrlf true
# Configure Git to ensure line endings in files you checkout are correct for Windows.
# For compatibility, line endings are converted to Unix style when you commit files.

리포지토리별 설정

필요에 따라 Git이 .gitattributes 특정 리포지토리에서 줄 끝을 읽는 방법을 관리하도록 파일을 구성할 수 있습니다. 이 파일을 리포지토리에 커밋하면 모든 리포지토리 기여자의 core.autocrlf 설정이 재정의됩니다. 이렇게 하면 Git 설정 및 환경에 관계없이 모든 사용자에게 일관된 동작이 보장됩니다.

파일은 .gitattributes 리포지토리의 루트에 만들어지고 다른 파일처럼 커밋되어야 합니다.

파일은 .gitattributes 다음 두 개의 열이 있는 테이블처럼 보입니다.

  • 왼쪽에는 Git에서 일치시킬 파일 이름이 있습니다.
  • 오른쪽에는 Git에서 해당 파일에 사용해야 하는 줄 끝 구성이 있습니다.

예제

예제 .gitattributes 파일은 다음과 같습니다. 리포지토리 템플릿으로 사용할 수 있습니다.

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

파일이 공백으로 구분되어 일치된 다음(*.c*.sln*.png), 설정이 지정됩니다(texttext eol=crlfbinary). 아래에서 몇 가지 가능한 설정을 살펴보겠습니다.

  • text=auto Git은 가장 좋다고 생각하는 방식으로 파일을 처리합니다. 좋은 기본 옵션입니다.

  • text eol=crlf Git은 체크 아웃 시 항상 줄 끝을 CRLF로 변환합니다. OSX 또는 Linux에서도 CRLF 끝을 유지해야 하는 파일에 사용해야 합니다.

  • text eol=lf Git은 체크 아웃 시 항상 줄 끝을 LF로 변환합니다. Windows에서도 LF 끝을 유지해야 하는 파일에 사용해야 합니다.

  • binary Git은 지정된 파일이 텍스트가 아니라는 것을 인식하므로 변경하려고 하면 안 됩니다. binary 설정은 -text -diff의 별칭이기도 합니다.

줄 끝을 변경한 후 리포지토리 새로 고침

옵션을 설정 core.autocrlf 하거나 파일을 커밋하면 .gitattributes Git에서 새 구성과 일치하도록 줄 끝을 자동으로 변경합니다. Git에서 수정하지 않은 파일의 변경 내용을 보고하는 것을 확인할 수 있습니다.

리포지토리의 모든 줄 끝이 새 구성과 일치하도록 하려면 Git을 사용하여 파일을 백업한 다음 모든 파일을 제거하고 복원하여 줄 끝을 정규화합니다.

  1. 변경 내용을 추가하거나 커밋하기 전에 Git이 구성을 올바르게 적용했는지 확인합니다. 예를 들어 Git은 리포지토리의 파일이 텍스트 또는 이진 파일인지 여부를 자동으로 결정합니다. 리포지토리에서 이진 파일의 손상을 방지하려면 에서 .gitattributes파일을 이진 파일로 명시적으로 표시하는 것이 좋습니다. 자세한 내용은 Git 설명서의 gitattributes - 경로당 특성 정의를 참조하세요.

  2. 리포지토리의 파일에 대한 로컬 변경 내용이 손실되지 않도록 하려면 다음 명령을 실행하여 미해결 변경 내용을 추가하고 커밋합니다.

    Shell
    git add . -u
    git commit -m "Saving files before refreshing line endings"
    
  3. 새 구성을 반영하도록 현재 분기의 모든 파일을 업데이트하려면 다음 명령을 실행합니다.

    Shell
    git rm -rf --cached .
    git reset --hard HEAD
    
  4. 다시 작성된 정규화된 파일을 표시하려면 다음 명령을 실행합니다.

    Shell
    git status
    
  5. 필요에 따라 리포지토리에서 미해결 변경 내용을 커밋하려면 다음 명령을 실행합니다.

    Shell
    git commit -m "Normalize all the line endings"

     

번호 제목 글쓴이 날짜 조회 수
212 안드로이드 생체 인식 인증 샘플 file 묵묵이 2024.12.19 0
211 Webbrowser 버전은 아래와 같이 변경 묵묵이 2024.04.28 1
210 HttpURLConnection 이용한 통신 / 파일 다운로드 묵묵이 2024.03.14 0
209 [Spring Boot] Gradle 로 빌드 하는 법 묵묵이 2024.02.08 0
208 Gradle 프로젝트 설정 묵묵이 2024.02.08 0
207 document.baseURI 를 지원하지 않는 이슈 묵묵이 2024.01.23 0
206 ios WkWebview 개발자 모드에서 로그를 볼수 없는 현상 묵묵이 2023.12.21 0
205 Cordova(코르도바) 설치, 프로젝트 생성 묵묵이 2023.12.14 0
204 웹뷰(WebView) 사용법 묵묵이 2023.12.13 0
203 안드로이드 기본값으로 휴대폰 기울기에 따라 자동회전 막기 묵묵이 2023.12.13 0
202 화면모드로 전환시 WebView가 리로드되는 현상 묵묵이 2023.12.13 0
201 xeni 엑셀 다운로드 관련 file 묵묵이 2023.12.08 2
200 CKeditor4 를 이용한 게시판 글쓰기 구현 및 사진 업로드 [1] 묵묵이 2023.11.23 1
199 Jenkins REST API 호출로 Job 생성/실행/결과조회 하기 묵묵이 2023.09.22 1
198 키보드 변경시 앱 재시동 현상 묵묵이 2023.09.09 0
197 Tomcat(톰캣)에서 HTTP/2 (HTTP 2.0) 사용하기 묵묵이 2023.08.08 7
196 Eclipse Git Merge Conflict 해결 방법 [1] 묵묵이 2023.07.27 1
195 유튜브 무료 영화 묵묵이 2023.07.24 0
» Git 줄 끝을 처리하도록 Git 구성 2 [2] 묵묵이 2023.07.20 2
193 빌라가배 Villagabae - 풀빌라 거제 묵묵이 2023.07.18 0
위로