반응형
- Git 저장소에 있는 파일을 `git clone` 하거나 작업하면서, 파일 내용 중에 `^M` 문자가 생기는 경우
- 또는 `^M` 차이가 `git diff`에 나타나는 경우
이건 주로 **줄바꿈(LF/CRLF)** 문제 때문입니다.
🔍 `^M` 문자의 정체는?
- `^M`은 `CR` (Carriage Return, ASCII 13, `\r`) 문자를 뜻합니다.
- Windows는 줄 끝을 `CRLF` (`\r\n`)로 저장하지만,
- Linux/macOS는 `LF` (`\n`)만 사용합니다.
그래서 파일을 Windows에서 만들고 Git을 통해 Linux/macOS에서 열거나 반대의 경우, `^M` 문자가 보일 수 있어요.
✅ 해결 방법
1. **Git의 자동 줄바꿈 설정 확인하기**
git config --global core.autocrlf
- `true`: 체크아웃 시 `LF` → `CRLF`, 커밋 시 `CRLF` → `LF`
- `input`: 체크아웃 시 아무것도 안 하고, 커밋 시 `CRLF` → `LF`
- `false`: 변환하지 않음
**권장 설정 (Linux/macOS 사용 시):**
git config --global core.autocrlf input
**Windows 사용 시:**
git config --global core.autocrlf true
2. **파일에서 직접 ^M 제거하기**
# macOS/Linux에서
sed -i 's/\r//' filename
💡 `git diff`에서 ^M만 차이나는 경우?
그럼 `git diff`가 줄 끝 문자 차이를 보여주는 거예요. 아래처럼 diff를 무시하게 할 수 있어요:
git diff --ignore-space-at-eol
또는 `.gitattributes` 파일에 아래 설정을 추가해 강제로 LF만 쓰도록 할 수도 있어요:
*.txt text eol=lf
*.sh text eol=lf
반응형
'작업 tools > git' 카테고리의 다른 글
특정 커밋 되돌리기 (0) | 2025.01.16 |
---|---|
git 특정 파일 커밋 로그 출력 방법 (0) | 2025.01.09 |
git commit 병합하기 (0) | 2025.01.08 |
git을 사용하여 특정 commit 간 변경된 파일만 추출하기 (0) | 2024.12.20 |
git에서 특정 commit 의 변경사항을 확인하는 세가지 방법 (2) | 2024.12.20 |