[TIL] (230814) ๐Ÿค” Git์— add๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ LF, CRLF ์— ๊ด€๋ จ๋œ ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€ ๋–ด๋‹ค.

Noh Jihyeonยท2023๋…„ 8์›” 14์ผ
1

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
1/49
post-thumbnail

์˜ค๋Š˜์€ ๊ฐ์ฒด์˜ ํด๋ž˜์Šค ์„ค๊ณ„, ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž, ์ถ”์ƒํด๋ž˜์Šค์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค.
์ฝ”๋“œ๋ฅผ ๊ตฌ์ƒํ•  ๋•Œ ์–ด๋–ค ๋ถ€๋ถ„์„ ์ถ”์ƒํ™”๋กœ ์ง„ํ–‰ํ• ์ง€, ์–ด๋–ค ๋ถ€๋ถ„์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ• ์ง€ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.
IntelliJ๋กœ ์ฝ”๋“œ๋ฅผ ์—ฐ์Šตํ•œ ํ›„ Git Bash๋ฅผ ์ด์šฉํ•˜์—ฌ github์— ์˜ฌ๋ฆฌ๋ ค๊ณ 
git add .์„ ํ–ˆ๋Š”๋ฐ ์ƒ์ „ ์ฒ˜์Œ ๋ณด๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์™€์„œ ๋‹นํ™ฉ์Šค๋Ÿฌ์› ๋‹ค. ์ด๊ฒŒ ๋ญ˜๊นŒ?




๐Ÿ”ธ๋ฌธ์ œ ๋ฐœ์ƒ

๊ฒฝ๊ณ ๋ฉ”์„ธ์ง€

:warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it

(๊ฒฝ๊ณ : '.gitignore'์˜ ์ž‘์—… ๋ณต์‚ฌ๋ณธ์—์„œ LF๋Š” Git์ด ๋‹ค์Œ๋ฒˆ์— ํ„ฐ์น˜ํ•  ๋•Œ CRLF๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค)


๊ฒฝ๊ณ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•ด ๋ณด๋‹ˆ LF๊ฐ€ CRLF๋กœ ๋Œ€์ฒด๋œ๋‹ค๋Š”๋ฐ LF์™€ CRLF๊ฐ€ ๋ญ”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

ํŠนํžˆ ํ‰์†Œ์™€ ๋™์ผํ•˜๊ฒŒ commit์„ ์ง„ํ–‰ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ‘์ž๊ธฐ ์ด๋Ÿฐ ๋ฉ”์‹œ์ง€๊ฐ€ ๋– ์„œ ๋‹นํ™ฉํ–ˆ๋‹ค.


๐Ÿ”ธ์‹œ๋„ํ•ด ๋ณธ ๊ฒƒ


์ผ๋‹จ ์—๋Ÿฌ๋ฉ”์‹œ์ง€๊ฐ€ ์•„๋‹Œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ผ๊ณ  ์ƒ๊ฐ๋ผ์„œ ๋ฌด์‹œํ•˜๊ณ  add๋ฅผ ํ•ด๋ดค๋”๋‹ˆ ์ ์šฉ์ด ์ž˜ ๋๋‹ค.

ํ™•์ธ์šฉ์œผ๋กœ commit๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ์ปค๋ฐ‹ ์—ญ์‹œ ์ž˜ ๋˜์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ‰์†Œ์—๋Š” ์•„๋ฌด ๋ฉ”์‹œ์ง€๋„ ๋œจ์ง€ ์•Š์•˜๊ธฐ์— ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ถ€ํ„ฐ ์‚ดํŽด๋ดค๋‹ค.

<ํ•ด์„>

๊ฒฝ๊ณ ๋ฉ”์‹œ์ง€

:warning: in the working copy of '. gitignore', LF will be replaced by CRLF the next time Git touches it

ใ„ด> .gitignore ํŒŒ์ผ์—์„œ ์ค„ ๋ ํ‘œ์‹œ ๋ฐฉ์‹์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, Git์ด ํŒŒ์ผ์„ ๋‹ค๋ฃฐ ๋•Œ LF(Line Feed)๋ฅผ CRLF(Carriage Return + Line Feed)๋กœ ๋ฐ”๊ฟ€ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋‹ค.

Line Feed (LF): ์ปค์„œ๋ฅผ ๋‹ค์Œ ์ค„๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.
Carriage Return (CR): ์ปค์„œ๋ฅผ ํ˜„์žฌ ์ค„์˜ ๋งจ ์•ž์œผ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ ๋ฉ”์‹œ์ง€๋Š” ์ค„ ๋ฐ”๊ฟˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด์—ˆ๋‹ค.

๋ณดํ†ต Unix ๊ณ„์—ด ์‹œ์Šคํ…œ(Linux, macOS ๋“ฑ)์—์„œ๋Š” ์ค„ ๋ ํ‘œ์‹œ๋กœ LF๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , Windows์—์„œ๋Š” CRLF๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

Git์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Unix ์Šคํƒ€์ผ์˜ ์ค„ ๋ ํ‘œ์‹œ์ธ LF๋ฅผ ์„ ํ˜ธํ•˜์ง€๋งŒ Windows ํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•  ๋•Œ Git์€ CRLF๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๋ฉฐ, ์ง€๊ธˆ ์ƒํ™ฉ์—์„œ๋Š” ํ˜•์ƒ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” Git์ด ๋‘˜ ์ค‘ ์–ด๋Š ์ชฝ์„ ์„ ํƒํ•ด์•ผ ๋˜๋Š”์ง€ ๋ชฐ๋ผ์„œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋„์›Œ์ค€ ๊ฑฐ๋ผ๊ณ  ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ํ˜•์‹์„ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค.

์ƒํ™ฉ์€ ํ•ด๊ฒฐํ–ˆ์œผ๋‚˜ ์ด์ „์—๋Š” ์ด๋Ÿฐ ๋ฉ”์‹œ์ง€๊ฐ€ ์•ˆ ๋–ด๊ธฐ ๋•Œ๋ฌธ์— ๋ญ๊ฐ€ ๋‹ฌ๋ผ์ง„ ๊ฑด์ง€ ํ•œ์ฐธ ๊ณ ๋ฏผํ•ด ๋ณด๋‹ค๊ฐ€ ๊ฒฝ๊ณ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค์‹œ ๋ณด๊ณ  ๋‹ต์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

๋ฌธ์ œ๋Š” ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•œ .gitignore์˜ ์ฝ”๋“œ์˜€๋‹ค!

์•„๊นŒ ํŒŒ์ผ๊ตฌ์กฐ๋ฅผ ๋ณธ๋‹ค๊ณ . gitignore์˜ ๋‚ด์šฉ์„ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ ๊ธฐ์กด์— ๋“ฑ๋ก๋˜์–ด ์žˆ๋˜ ์ฝ”๋“œ ์ผ๋ถ€๋ฅผ ์ž˜๋ชป ๊ฑด๋“œ๋ ค์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

100% ํ™•์‹คํ•˜์ง„ ์•Š์œผ๋‚˜ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ ์ดํ›„๋กœ ์‹คํ—˜์šฉ ๋”๋ฏธํŒŒ์ผ์„ github์— ์˜ฌ๋ ธ์„ ๋• ์ •์ƒ์ ์œผ๋กœ ์—…๋กœ๋“œ๋˜์—ˆ์œผ๋‹ˆ ์ด ์ด์œ ๊ฐ€ ๊ฐ€์žฅ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.


๐Ÿ”ธํ•ด๊ฒฐ

Git์ด ๋‘˜ ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ• ์ง€ ๋ชจ๋ฅธ๋‹ค๋ฉด ์ง์ ‘ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค!

autocrlf : check-in, check-outํ•  ๋•Œ ํŒŒ์ผ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ์„ค์ •ํ•˜๋Š” ๋ณ€์ˆ˜์ด๋‹ค.

<ํ•ด๊ฒฐ์ฝ”๋“œ>

$ git config --global core.autocrlf true 

์ด ์„ค์ •์€ ์ฃผ๋กœ Windows์—์„œ Git์„ ์‚ฌ์šฉํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์ ์šฉ๋จ

--global : ์‹œ์Šคํ…œ ์ „์ฒด ์ ์šฉ


๐Ÿ”ธ์•Œ๊ฒŒ ๋œ ์ 


.gitignore์„ Windows ํ™˜๊ฒฝ์—์„œ ์ž‘์„ฑํ•˜๊ณ  Linux ๋˜๋Š” macOS ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

Git ์„ค์ •์—์„œ --global์˜ต์…˜์€ ์ „์—ญ์ ์œผ๋กœ ์ ์šฉํ•˜๋Š” ์˜ต์…˜์ด๋‹ค. ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  Git์ €์žฅ์†Œ์—์„œ ๋™์ผํ•˜๊ฒŒ ์„ค์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

๋น„๋ก ๊ฒฝ๊ณ ์„ฑ ๋ฉ”์‹œ์ง€์ด์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด ์ฐจ๋‹จํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ์ค‘์š”ํ•œ ํ”„๋กœ์ ํŠธ๋‚˜, ์ธ์›์ด ๋งŽ์ด ํˆฌ์ž…๋˜๋Š” ํฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ LF, CRLF ์ค‘ ์–ด๋–ค ๊ฒƒ์œผ๋กœ ์ง„ํ–‰ํ• ์ง€ ๋ฏธ๋ฆฌ ์ •ํ•œ ํ›„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜, ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๋งž์ถ”๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

profile
๊ผญ๊ผญ ์”น์–ด์„œ ์†Œํ™”์‹œํ‚ค๋Š” ๋ง›์žˆ๋Š” ์ฝ”๋”ฉ

0๊ฐœ์˜ ๋Œ“๊ธ€