[Git Bash (Window)] "git configure --global core.autocrlf true" 했는데도 "...replaced by CRLF" 경고문이 나올 때

식빵·2022년 2월 14일
0
post-thumbnail

🍀 분명 설정했는데 왜 이러지?


window 환경에서 git bash을 쓰다보니 아래와 같은 에러 문구를 만나게 되었다.


그래서 인터넷을 뒤져보니, 이런 명령어를 치면 된다고 해서 해봤다.


git config --global core.autocrlf true

이렇게 하면 기본동작이 바뀌는데,

파일 내의 텍스트 중 new lineLF 인 것이 있으면, 체크아웃 시에는 LF ==> CRLF 로 바꾸고, 커밋시에는 CRLF ==> LF 로 변경한 후 commit한다.

참고로 이런 작업들은 내 컴퓨터에 저장된 기존 파일의 내용은 건들지 않는다고 한다.


참고:

사실 위 설정은 우리가 git bash를 다운로드 받고 설치할 때 이미 세팅을 하게 된다.
설치시 무지성으로 계속 Next를 누르면 못 봤을 수도 있다. 나도 그랬다.


그런데 여전히 아래처럼 문구가 나왔다.




🍀 원인 파악

이상했지만 곧 이유를 알았다.

나는 텍스트 파일을 만들 때 git bash 내에서 파일을 vim editor 로 편집을 했다.
그런데 vim을 쓰면 new line 방식이 Unix 방식을 따르게 된다. 즉 LF 를 쓴 거다.

직접 테스트를 해보면 알 수 있다. git bash를 실행하고 간단하게 아래처럼 테스트해봤다.

git init # git 초기화
touch wow.txt # 텍스트 파일 생성. 이때까지는 윈도우 CRLF 를 따른다.
vim wow.txt

# 편집 내용은 아래와 같이 작성
# good day~
# isn't it?

여기까지만 하고 wow.txt 파일의 디렉토리로 가서 파일을 열어보자.
그러면 아래와 같이 LF 사용을 확인할 수 있다.


이 상태에서 git add 를 시도하면? 예상대로다.



그렇다. git은 아무 잘못이 없었다.
그저 사용자인 내가 파일 작성을 vim editor을 사용했기 때문에 LF를 쓴 것이다.

그렇다면 일반적으로 window 에서 텍스트 파일을 생성하고, 내용을 작성하면 어떨까?
당연히 window 운영체제에서 쓰는 CRLF를 사용한다.


그리고 이 파일을 git add 하면? 경고문이 나오지 않고 깔끔하게 stage 된다.




🍀 예외 사항

그런데 window에서 vim editor를 써도 CRLF를 유지하는 경우도 있다.
그건 뭐냐면 초기에 파일을 생성하고 나서, 맨 처음 저장할 window 편집기를 사용하면 그렇다.

파일 생성 ==> window 메모장으로 내용 작성 ==> 저장 ==> 이후 vim으로 수정 ==> CRLF 유지




🍀 결론: window 편집기를 쓰자

이런 경고문을 보기 싫으면? 그냥 git bash 에서 제공하는 vim을 안 쓰면 그만이다!



🍀 그래도 vim을 쓰고 싶다면?

내가 작성한 vim fileformat=dos 로 변경하는 방법을 참고한다.

참고로 방법1은 임시적인 방법이고, 방법2는 영구적인 방법이다.




🍀 참고

profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글