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이 .gitattributes
특정 리포지토리에서 줄 끝을 읽는 방법을 관리하도록 파일을 구성할 수 있습니다. 이 파일을 리포지토리에 커밋하면 모든 리포지토리 기여자의 core.autocrlf
설정이 재정의됩니다. 이렇게 하면 Git 설정 및 환경에 관계없이 모든 사용자에게 일관된 동작이 보장됩니다.
파일은 .gitattributes
리포지토리의 루트에 만들어지고 다른 파일처럼 커밋되어야 합니다.
파일은 .gitattributes
다음 두 개의 열이 있는 테이블처럼 보입니다.
- 왼쪽에는 Git에서 일치시킬 파일 이름이 있습니다.
- 오른쪽에는 Git에서 해당 파일에 사용해야 하는 줄 끝 구성이 있습니다.
예제
예제 .gitattributes
파일은 다음과 같습니다. 리포지토리 템플릿으로 사용할 수 있습니다.
파일이 공백으로 구분되어 일치된 다음(*.c
, *.sln
, *.png
), 설정이 지정됩니다(text
, text eol=crlf
, binary
). 아래에서 몇 가지 가능한 설정을 살펴보겠습니다.
-
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을 사용하여 파일을 백업한 다음 모든 파일을 제거하고 복원하여 줄 끝을 정규화합니다.
-
변경 내용을 추가하거나 커밋하기 전에 Git이 구성을 올바르게 적용했는지 확인합니다. 예를 들어 Git은 리포지토리의 파일이 텍스트 또는 이진 파일인지 여부를 자동으로 결정합니다. 리포지토리에서 이진 파일의 손상을 방지하려면 에서
.gitattributes
파일을 이진 파일로 명시적으로 표시하는 것이 좋습니다. 자세한 내용은 Git 설명서의 gitattributes - 경로당 특성 정의를 참조하세요. -
리포지토리의 파일에 대한 로컬 변경 내용이 손실되지 않도록 하려면 다음 명령을 실행하여 미해결 변경 내용을 추가하고 커밋합니다.
Shell -
새 구성을 반영하도록 현재 분기의 모든 파일을 업데이트하려면 다음 명령을 실행합니다.
Shell -
다시 작성된 정규화된 파일을 표시하려면 다음 명령을 실행합니다.
Shell -
필요에 따라 리포지토리에서 미해결 변경 내용을 커밋하려면 다음 명령을 실행합니다.
Shell
댓글 2
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
212 | 안드로이드 생체 인식 인증 샘플 | 묵묵이 | 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 엑셀 다운로드 관련 | 묵묵이 | 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 |
참조 URL :
https://revf.tistory.com/entry/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4%EC%97%90%EC%84%9C-git-%EC%82%AC%EC%9A%A9%EC%8B%9C-%EC%86%8C%EC%8A%A4-%EC%9E%90%EB%8F%99%EB%B3%80%EA%B2%BD
만약 git client 로 egit 을 사용하면 .gitattributes 를 읽지 못하므로 제대로 동작 안 하므로 방법 #1 을 사용해야 한다.