Git

Github에 commit시 �문자 생길 경우(commit 깨짐 현상)_git bash

Gnow 2023. 3. 26. 22:27
728x90
반응형

여느때와 다름 없이 Github에 잔디 심기를 하던 도중 평소에 보지 못했던 상황이 발생했다.

분명 git commit -m "Adventure's Guild" 를 적었던거 같은데 github에서 확인해보니 위처럼 � 문자가 앞에 붙어 버렸다..

불편...


여러번 커밋하던 중 처음 보는 현상이였기에 구글링을 해보았다.  참고 사이트

찾아보니 i18.commitencoding 설정을 "UTF-8"로 변경해야 한다고 했다.


그래서 git bash에서 git config --global -l 명령어로 설정을 확인한 결과 애초에 설정도 안되어 있었다...

git config --global i18n.commitencoding "UTF-8" 명령어로 설정을 해줬다.

다시  git config --global -l 로 확인해보니 잘 적용 된 것을 확인할 수 있었다.


설정을 해줬으니 커밋을 수정할 차례이다.

커밋을 수정하는 명령어는 여러개지만 이번에 쓸 명령어는 --amend 명령어이다.

--amend 명령어는 바로 이전에 작성했던 커밋을 수정하는 명령어이다.

 

git commit --amend 를 bash에 입력하면 아래처럼 이전 커밋을 확인할 수 있다.

커밋을 확인하니 앞에 <96>이라는 문자가 들어가 있다. 이거 때문인 듯하니 지워주고 다시 푸쉬를하면 된다.


키보드 i를 입력하면 bash 창 맨 아래에 다음과 같이 INSERT로 바뀐다. 즉, 커밋을 수정할 수 있다.

키보드로 이동해 앞에 <96> 을 지워준다.

그 이후 키보드의 ESC를 눌러 INSERT 모드에서 빠져나온 뒤 아래와 같이 :wq!를 입력해 빠져나와준다.

(여기서 :wq! 는 작업한 내용을 저장하고 vi를 종료하는 명령어다.)


그 이후  git push 를 하면 되는데 그냥 git push를 하게 되면 충돌이 날 수 있다라는 등의 이유로 push를 못하게 만든다.

실제로 충돌날 경우를 대비해 pull로 pc와 깃허브를 동일하게 만들어야하지만 커밋메시지만 수정하기 때문에 강제로 push하는 명령어인  git push -f 를 사용했다.

현업에서 사용할 경우엔 -f 명령어를 매우 주의해서 사용해야합니다.


git push -f 명령어로 push를 마무리하고 확인해보면 정상적으로 잘 commit 된 것을 확인할 수 있다.


지금 작성하면서 생각난 것인데 위에서 설정한 UTF-8과 별개로 --amend로 수정했으면 굳이 안해도 되지 않나..

그래도 추후에 또 이런 에러가 나는 것보다 미리 설정해 놓는게 좋다고 생각이 들었다.

728x90
반응형