본문 바로가기
어?/FE

[Prettier / ESLint / git] 누가 내 코드에 CRLF 심었어 !!!!!!!!!!!!!!!!!!!!!!

by 껐다 켜보셨어요? 2024. 10. 6.

내가 저걸 못 봐서 30분을 날리고 말았다 

 

우리 팀의 작업 루틴은 다음과 같다

기능 하나를 만들어야 함 -> Jira에 이슈 추가 -> 만들어진 이슈로 브랜치를 만듦 -> 브랜치에서 기능 추가 작업 -> push 전 build 테스트 -> pushed -> Merge Request -> 리뷰 후 Merge

 

이 과정에서 코드 스타일 / 오류 검사를 위해 도입한 툴이 Prettier / ESLint였고

ESLint 환경 설정 파일에 

 
  "plugins": ["@typescript-eslint", "prettier"],  
  "extends": [
    "next",
    "airbnb",
    "airbnb-typescript",
    "eslint:recommended",
    "plugin:prettier/recommended"
  ], 

prittier를 추가해서 코드 스타일 검사도 같이 하게 해 뒀다

 

문제가 된 것은

우리 팀에서 정한 코드 스타일 규정 중에서

줄바꿈을 'LF'로 해둔 것이었는데 

윈도우 git에서 별도의 설정을 하지 않으면 

지 멋대로 LF로 작성된 파일을 CRLF로 바꿔 버린다. (윈도우 기본 줄바꿈이 CRLF라서)

전부 다 ...................................

브랜치에 있는 모든 파일 .....

모든 라인을 ................

전부 다 ...............................................................

 

그래서 푸쉬를 하기 전에 빌드 테스트를 하면

Prettier에서 정한 줄바꿈 스타일대로 줄바꿈이 지정되어 있지 않기 때문에 

ESLint 검토에서 모든 파일 모든 라인에 오류가 나고

푸쉬를 할 수 없게 된다! 하하 

하하하하 ~~

 

이걸 VSC에서는 각 파일의 우측 하단 

이 버튼을 눌러 바꾸어 줘야 한다.

그럼 몇십 ~ 몇백 개의 파일을 일일이 눌러야 하는 건가?

일괄적으로 바꾸는 방법은? ?? ? 못 찾았다.,, ,,  

하하하하하하하하 ~~ 

 

나는 그래서 다른 폴더를 만들어 다시 clone을 받았다. 

마지막으로 푸쉬한 작업 사항까지는 어쨌든 LF로 올라가 있기 때문인데

다시 클론 받은 폴더에, 내가 작성한 변경 사항이 있는 파일만 넣어 주고

그 파일의 줄바꿈 방식만 바꾸면 된다 ㅜㅜ . 

그런데 윈도우 git은 별도 설정을 하지 않으면 또 모든 파일의 줄바꿈을 바꿔 버린다! ^^

그래서 clone 전에 아래 설정을 해 준다. 


      git config --global core.autocrlf false
     

 

그리고 내가 무슨 파일을 작업했는지 잊어버려서 .. . .


      git log --stat
 

 

이걸 입력하면 커밋 로그와 함께 어떤 파일이 변경되었는지 보여준다. 

요렇게

 

git log --stat 결과로 나온 파일(내가 작업한 파일)을 찾아서 방금 클론한 디렉토리에 가져다가 심고

무심코 아 다 됐다 ~ 하고 커밋해버렸는데

변경한 파일을 아직 LF로 바꾼 상태가 아니었기 때문에 ㅋㅋㅋ 푸쉬하면 또 오류 날 거라

LF로 바꾸기 + 일부 로직 추가해서 

직전에 커밋한 내용에 다시 추가했다. 

이걸 하려면 아래 명령어를 입력해야 함 


      git add .
      git commit --amend
 

 

add는 그냥 평소처럼 해 주면 되고 commit --amend의 경우에는 최근 커밋을 수정하는 명령어라서

커밋에 새로운 변경 사항을 또 추가하고 커밋 메시지도 변경할 수 있다.

위 명령어는 푸쉬하다가 빌드 실패해서 수정한 내용 반영할 때도 유용하다

(여기서 오류 수정하고 git add 안 하고 빌드 된다고 그냥 푸쉬해 버리면 fix 안 된 악성 코드가 그대로 올라감 ㅋㅋ) 

 

그러고 나면 ... 푸쉬 잘 된다

 

 

++ 

VSC에서 파일을 새로 만들 때 기본 줄바꿈 방식을 지정할 수 있는 설정이 있다 

Ctrl + , 하고 eol(end of line) 검색하면 나옴

근데 이제와서 설정하면 뭐할거야 나 이미 울면서 다 고쳤는데 

 

ctrl + shift + f 해서 정규표현식으로 \r\n 찾아서 \n으로 바꾸는 방식도 고려해보긴 했는데

그건 너무 불안하다 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅋㅋ ㅋ 

댓글