๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
7๏ธโƒฃ Git/๊ธฐ๋Šฅ ์ •๋ฆฌ

[Git] .gitignore ์ƒ์„ฑ, ์ ์šฉ ๋ฐฉ๋ฒ• ์ •๋ฆฌ (macOS)

by seolhee2750 2021. 7. 21.

์ง€๊ธˆ๊นŒ์ง€๋Š” ๊นƒ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ๋„ ์ •ํ™•ํ•œ ์ดํ•ด๋Š” ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

์˜ค๋Š˜๋ถ€ํ„ฐ๋Š” ๊นƒ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ณ , ๊นƒํ—ˆ๋ธŒ, ๊ทธ๋ฆฌ๊ณ  ์†Œ์ŠคํŠธ๋ฆฌ ๋“ฑ์„ ์•Œ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด๋ ค ํ•œ๋‹ค.

 

๊ทธ ์‹œ์ž‘์œผ๋กœ, ์˜ค๋Š˜์€ .gitignore์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค.


โ˜๐Ÿป ์šฐ์„ , ์šฐ๋ฆฌ๊ฐ€ ๊นƒ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ์—๋Š”

์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ชฉ์ ์ด ์žˆ์ง€๋งŒ

๊ทธ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฐ”๋กœ

ํžˆ์Šคํ† ๋ฆฌ, ๋ฐฑ์—…, ํ˜‘์—…

์ด๋ ‡๊ฒŒ ์„ธ ๊ฐ€์ง€์ผ ๊ฒƒ์ด๋‹ค.

 

์ด ์ค‘ ํžˆ์Šคํ† ๋ฆฌ๋Š”

๋‚ด๊ฐ€ ์–ด๋–ค ๊ฒƒ์„ ๋ณ€๊ฒฝํ–ˆ๊ณ , ์ถ”๊ฐ€ํ–ˆ๊ณ , ์‹ค์ˆ˜ํ–ˆ๋Š”์ง€๊นŒ์ง€.

๋ชจ๋‘ ๋ณด์—ฌ์ฃผ๋Š” ์ง€ํ‘œ์ด๋ฉฐ ๋ฒ„์ „๊ด€๋ฆฌ์˜ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด ๋œ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜, ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ด์šฉํ•ด๋ดค๋‹ค๋ฉด ๋ชจ๋‘ ์•Œ ๊ฒƒ์ด๋‹ค...

๊ตณ์ด ํžˆ์Šคํ† ๋ฆฌ์— ์˜ฌ๋ฆฌ์ง€ ์•Š์•„๋„ ๋ , ํ˜น์€ ์•Š์•„์•ผ ํ•  ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค.

์ด ๋•Œ, ์ด๋Ÿฐ ๋‚ด์šฉ๋“ค๊นŒ์ง€ ๋ชจ๋‘ ์ปค๋ฐ‹ํ•œ๋‹ค๋ฉด ๋‚ด ์ปค๋ฐ‹๋กœ๊ทธ๋Š” ์ข‹์€ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ์‹œํ–‰ํ•œ๋‹ค๊ณ  ๋ณด๊ธฐ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ  .gitignore์ด๋‹ค.

(๋‚˜๋Š” ์ง€๊ธˆ๊นŒ์ง€ .gitignore๋ฅผ ๋ชฐ๋ผ์„œ ๊ทธ๋ƒฅ ๋‹ค ์ปค๋ฐ‹ํ–ˆ๋‹ค,,ใ…œ)

 

๐Ÿ“Ž .gitignore

ํ•ญ์ƒ ๊ณต์‹ ๋ฌธ์„œ๊ฐ€ ๊ธฐ๋ณธ!

GitHub ๊ณต์‹ ๋ฌธ์„œ์—๋Š”

๋‚ด ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— .gitignore ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉด

์ปค๋ฐ‹ ์‹œ ์–ด๋–ค ํŒŒ์ผ, ํ˜น์€ ๋””๋ ‰ํ† ๋ฆฌ๋“ค์„ ๋ฌด์‹œํ• ์ง€ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋‚˜์™€์žˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ .gitignore๋ฅผ ์ด์šฉํ•˜๋ฉด, ๋‚ด๊ฐ€ ์ปค๋ฐ‹ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๋‚ด์šฉ๋“ค์„ ๋นผ๊ณ ! ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.

.gitignore์„ ๋งŒ๋“ค๊ณ , ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.


๐Ÿ“Œ [ Step 1 ] .gitignore ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ

ํ„ฐ๋ฏธ๋„์— ๋“ค์–ด๊ฐ€์„œ

cd [๊ฒฝ๋กœ] 

๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์ค€๋‹ค.

๐Ÿ‘‰๐Ÿป ์œ„์—์„œ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ํ™•์ธํ–ˆ๋“ฏ์ด, ํ•ด๋‹น ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์˜ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค.

(์›ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์‰ฝ๊ฒŒ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์š”๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!)

 

๊ทธ ๋‹ค์Œ

sudo touch .gitignore

๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— .gitignore ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ค€๋‹ค.

 

์—ฌ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒํ•˜๊ณ  ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๋ฉด, ์•„๋ž˜ ํ™”๋ฉด์ฒ˜๋Ÿผ .gitignore ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์—ˆ์„ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ์•„๋ž˜์˜ ํ๋ฆฟํ•œ ๋‘ ํŒŒ์ผ์ด ์•ˆ๋ณด์ด๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. (๋‚ด๊ฐ€ ๊ทธ๋žฌ๋‹ค.)

macOS์—์„œ๋Š” ์ž๋™์œผ๋กœ .์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ผ๋“ค์ด ์ˆจ๊น€ ์ฒ˜๋ฆฌ๋˜์–ด์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ํŒŒ์ผ๋“ค๋„ ๋ณด์ด๊ฒŒ ์„ค์ •ํ•ด์ค˜์•ผ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•œ๋ฐ,

์ด ๋•Œ๋Š” ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์—์„œ shift+command+. ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋ฐ”๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๐Ÿ“Œ [ Step 2 ] .gitignore ์ž‘์„ฑํ•˜๊ธฐ

์—ฌ๊ธฐ๊นŒ์ง€ ์™”๋‹ค๋ฉด, ์ด์ œ .gitignore ํŒŒ์ผ์— ์•Œ๋งž์€ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•  ์ฐจ๋ก€์ด๋‹ค.

์ง์ ‘ ์ž‘์„ฑ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์•„์ง ๋‚˜์—๊ฒ ์–ด๋ ค์›Œ์„œ,, ๋„์™€์ฃผ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

๋ฐ”๋กœ ์ด ์‚ฌ์ดํŠธ์ธ๋ฐ,

์—ฌ๊ธฐ์— ๊ฐ€์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด .gitignore ํŒŒ์ผ ๋‚ด์šฉ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

๋‚ด ๊ฒฝ์šฐ์—๋Š” swift, Xcode, macOS ์ด๋ ‡๊ฒŒ ์„ธ ๊ฐ€์ง€ ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค.

๋ณธ์ธ์ด ํ•ด๋‹น ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋‚˜ ๋„๊ตฌ ๋“ฑ์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ•ด์„œ '์ƒ์„ฑ'๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์ฃผ๋ฉด

์œ„์™€ ๊ฐ™์ด ๋‚ด๊ฐ€ ์ž…๋ ฅํ•œ ํ‚ค์›Œ๋“œ์— ๋งž๋Š” .gitignore ๋‚ด์šฉ์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ ์ด๊ฑธ ๋ณต์‚ฌํ•ด์„œ ๋‚ด๊ฐ€ ๋งŒ๋“  .gitignore ํŒŒ์ผ์— ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

 

๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ์„ฑ๊ณตํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ, ์ด๋•Œ ๋˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ์‹œ๋„ํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๋•Œ๋Š” ํŽธ์ง‘์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •์„ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ,

์šฐ์„  ์ด ์›์ธ์„ ํŒŒ์•…ํ•ด๋ณด์ž.

 

pc ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ ์“ฐ๊ธฐ ํŽธ์ง‘์ด ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ,

์•„๋ž˜์™€ ๊ฐ™์ด '์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ'๋ฅผ ํ™•์ธํ–ˆ์„ ๋•Œ

์ด๋ ‡๊ฒŒ ๋‚˜ ์ž์‹ ์˜ ๊ถŒํ•œ์ด ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ๋กœ ๋˜์–ด์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ํŽธ์ง‘ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ .gitignore ํŒŒ์ผ์˜ ๊ฒฝ์šฐ์—๋Š” ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ™•์ธํ–ˆ์„ ๋•Œ,

์•„๋ž˜์™€ ๊ฐ™์ด ์•„์˜ˆ ๋‚˜ ์ž์‹ ์ด ๋“ฑ๋ก๋˜์–ด์žˆ์ง€ ์•Š์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ์—๋Š”

์šฐ์ธก ํ•˜๋‹จ์˜ ์ž๋ฌผ์‡ ๋ฅผ ์—ด๊ณ , ์ขŒ์ธก ํ•˜๋‹จ์˜ +๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‚˜ ์ž์‹ ์„ ์ถ”๊ฐ€ํ•œ ํ›„

์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐ ๊ฐ€๋Šฅ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด ์™„๋ฃŒ!

์œ„์˜ ๊ณผ์ •์„ ๋๋‚ด๋ฉด .gitignore ํŒŒ์ผ์— ๋ถ™์—ฌ๋„ฃ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค.

 

๐Ÿ“Œ [ Step 3 ] ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์ ์šฉํ•˜๊ธฐ

// ์„ ํƒ
sudo git rm -r --cached . // ๊นƒ ํŠธ๋ž™ํ‚น ํ’€์–ด์ฃผ๊ธฐ
sudo git add . // ๊นƒ ์ปค๋ฐ‹ ํ•  ํŒŒ์ผ ๋Œ€์ƒ ์„ค์ •

// ํ•„์ˆ˜
sudo git commit -m ".gitignore ์ƒ์„ฑ" // ์ปค๋ฐ‹
sudo git push origin master // ํ‘ธ์‹œ

ํ„ฐ๋ฏธ๋„์— ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ ์šฉํ•˜๋ฉด ๋œ๋‹ค.

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์„ ํƒ๊ณผ ํ•„์ˆ˜๋กœ ๋‚˜๋ˆด๋Š”๋ฐ,

 

๋งŒ์•ฝ ์ด๋ฏธ ์ƒ์„ฑํ•œ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์ž‘์—…ํ•œ ํŒŒ์ผ๋“ค์„ ์˜ฌ๋ ธ์„ ๊ฒฝ์šฐ

๊ทธ ์ „ ์ž‘์—…ํ•œ ๋‚ด์šฉ๋“ค์—๋„ ignoring์„ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์œ„์˜ ์„ ํƒ ์ฝ”๋“œ๊นŒ์ง€ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋˜๊ณ ,

์•„์ง ์•„๋ฌด ๋‚ด์šฉ๋„ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ทธ ์ „ ์ž‘์—…์— ๋Œ€ํ•ด์„œ๋Š” ์ ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ์•„๋ž˜ ํ•„์ˆ˜ ์ฝ”๋“œ๋งŒ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์—ฌ๊ธฐ๊นŒ์ง€ ๋งˆ์น˜๋ฉด

์ด๋ ‡๊ฒŒ .gitignore๊ฐ€ ์ž˜ ์ ์šฉ๋œ ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


์ด๋ ‡๊ฒŒ ์˜ค๋Š˜์€ .gitignore์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ๋‹ค.

๋‚˜๊ฐ™์€ ๊นƒ๋ฆฐ์ด๋“ค์—๊ฒ ๋ณต์žกํ•ด๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ,

๊ผญ ํ•„์š”ํ•œ ๋‚ด์šฉ์ด๋‹ˆ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ ํ•„์ˆ˜๋กœ! ํ•˜์‹œ๊ธธ ๋ฐ”๋ž€๋‹ค.

 

์ˆ˜์ •์ด ํ•„์š”ํ•œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป


์ฐธ๊ณ 

๋Œ“๊ธ€