JetBrains IDE에서 "Squash Commits..." 메뉴가 비활성화된 경우
일례로, PyCharm 같은 경우 이런 식으로 비활성이 되는데요,
왜냐하면 설정이 그렇게 되었기 때문입니다. 아래의 글에서 이에 대한 Q&A가 나오는데,
Cannot squash the first commit – "Squash Commits..." is disabled
; https://youtrack.jetbrains.com/issue/IDEA-262977
따라서 다시 활성화를 하려면 "File" / "Settings... (Ctrl+Alt+S)" 메뉴를 선택해 다음과 같이 "Version Control" / "Git" 범주로 들어가 "Protected branches"에 있는 텍스트를 적절하게 없애면 됩니다.
보통 근래에는 (master가 노예제도를 연상시킨다 하여) main이 기본 branch가 되므로 그 문자열을 지워주면 다시 메뉴가 활성화됩니다.
참고로, 위의 경우에는 IDE 레벨에서 squash를 막는 반면 git 자체에서 막는 경우도 있습니다.
About protected branches
; https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches
(유의할 점은, 개인 프로젝트가 아닌 한 팀 프로젝트에서 main/master의 Squash Commit은 권장할 기능이 아닙니다.)
git을 다룰 때 개행 문자로 다음과 같은 경고가 발생한다면?
warning: in the working copy of '...', LF will be replaced by CRLF the next time Git touches it
아래의 글에 따라,
git 에서 CRLF 개행 문자 차이로 인한 문제 해결하기
; https://www.lesstif.com/gitbook/git-crlf-20776404.html
eol 또는, autocrlf 값을 조정하면 됩니다. 유사한 문제들을 예전에도 한번 다뤘는데요,
shell script 실행 시 "$'\r': command not found" 오류
; https://www.sysnet.pe.kr/2/0/12874
Visual Studio 편집기의 \r\n (crlf) 개행을 \n으로 폴더 단위로 설정하는 방법
; https://www.sysnet.pe.kr/2/0/11376
eol의 (native, crlf, lf) 값과, autocrlf의 (false, true, input) 값이 가능한 것은 이번에 새롭게 알게 되었습니다. ^^ 일례로, 언제나 리눅스에서만 실행되는 프로젝트를 개발하고 있다면 autocrlf를 "input"으로 설정하면 좋을 것입니다.
git config --global core.autocrlf input
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]