κ°λ°νμ μ₯λΉκ° μ¬λ¬ νλ«νΌμΌλ‘ ꡬμ±λ κ²½μ° GIT ꡬμ±μ λ°λΌ λ³κ²½μ¬νμ΄ μμμλ λ§μ νμΌμ΄ μ€ν μ΄μ§ λμμΌλ‘ μΆλ ₯λ©λλ€.
λ³΄ν΅ μ€μ λ (EOL; End of line)μ μ²λ¦¬νλ λ°©λ²μ΄ OS λ§λ€ λ¬λΌμ λ°μν©λλ€.
λ§μ΄ μ¬μ©λλ OSμμ μ€μ λμ νννλ λ°©λ²μ μλμ κ°μ΅λλ€.
- Windows λ CRLF (
\r\n
Carage return, Line feed) - Unix λ LF (
\n
Line feed)
ꡬμ±
git config λͺ λ ΉμΌλ‘ ꡬμ±μ λ³κ²½ν μ μμ΅λλ€.
μ€μ λμ μ²λ¦¬νλ λκ°μ§ λ°©λ²μ΄ μ 곡λ©λλ€.
core.eof
$ git config --global core.eol native
core.eolμ μ¬μ©ν μ μλ κ°μ μλμ κ°μ΅λλ€.
-
native
κΈ°λ³Έκ°, OSμ EOL μ²λ¦¬λ°©λ²μ μ¬μ©ν©λλ€.
-
crlf
CRLF (
\r\n
Carage return, Line feed)λ₯Ό μ¬μ©ν©λλ€. -
lf
LF (
\n
Line feed)λ₯Ό μ¬μ©ν©λλ€.
μλ λͺ λ ΉμΌλ‘ κ΅¬μ± λ΄μ©μ νμΈν μ μμ΅λλ€.
$ git config --global --list
core.autocrlf
git λ°μ΄ν°λ² μ΄μ€μ ν μ€νΈ νμΌμ λ³κ²½ μ΄λ ₯ λ°μ΄ν° μ μΆλ ₯μ μ€μ λμ μ΄λ»κ² μ²λ¦¬ν μ§ κ²°μ ν©λλ€.
$ git config --global core.autocrlf true
core.autocrlf μ μ¬μ©ν μ μλ κ°μ μλμ κ°μ΅λλ€.
-
false
κΈ°λ³Έκ°, νμΌμ λ΄μ© κ·Έλλ‘ λ°μ΄ν°λ² μ΄μ€ λ³κ²½ μ΄λ ₯μ μ μΆλ ₯ν©λλ€.
-
true
λ°μ΄ν°λ² μ΄μ€μ μ λ ₯νκΈ° μ μ CRLF λ₯Ό LF λ‘ λ³κ²½ν©λλ€.
-
input
LF λ₯Ό μ€μ λμΌλ‘ μ¬μ©ν©λλ€.
무μμ ν΄μΌ νλμ?
κ°λ°νμ Windows, Macos, Linux λ₯Ό κΈ°λ°μΌλ‘ κ°λ°μ μ§ννλ νμ μ€ Windows μ¬μ©μλ core.autocrlf ꡬμ±μ κ°μ true λ‘ μ€μ νλ©΄ λ©λλ€.
PS> git config --global core.autocrlf true
Macos, Linux μ¬μ©μμ κ²½μ° LF κ° μ¬μ©λλ―λ‘, core.autocrlf ꡬμ±μ κ°μ inputμΌλ‘ μ€μ ν©λλ€.
$ git config --global core.autocrlf input
λ λ§μ λ΄μ©
GitHub Docs: Configuring Git to handle line endings νμ΄μ§μμ μΆκ°μ 보λ₯Ό μ°Ύμ μ μμ΅λλ€.
.gitattributes
νμΌμ μ¬μ©ν΄μ μ¬μ©μκ° git ꡬμ±μ λ³κ²½νμ§ μμλ λμΌν μ μ₯μλ₯Ό μ¬μ©ν΄μ νμ
νλ μ¬μ©μκ° μ€μ λ μ²λ¦¬λ₯Ό 곡μ νλ λ°©λ²μ΄ μ€λͺ
λμ΄ μμ΅λλ€.