๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Study (etc)/์‚ฝ์งˆ์ผ๊ธฐ

[git] ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ํŒŒ์ผ๋ช…์ด ๋ฐ”๋€Œ์ง€ ์•Š์•„!!

by Haren 2023. 8. 2.

๐Ÿ˜ฅ ๊ฒฝ๋กœ๋ช…์„ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์—ˆ๋‹ค...

 

๋‚ด๊ฐ€ ์†ํ•œ ๋Œ€ํ•™์ƒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒ€ DEF:CON์˜ 2023๋…„ ๋ฒ„์ „ ํ™ˆํŽ˜์ด์ง€ ๋ฆฌํŒฉํ† ๋ง ์ž‘์—… ์ค‘, PM ์นœ๊ตฌ๊ฐ€ "๊ฐ ํŽ˜์ด์ง€ ๊ฒฝ๋กœ๋ช…์ด ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค." ๊ณ  ํ•ด์„œ ๋ญ ๊ทธ๊ฑฐ์•ผ Next.js์˜ ์ž๋™ ๋ผ์šฐํŒ…์„ ์œ„ํ•ด ํ†ตํ•ด ๋ผ์šฐํŒ… ๋˜๊ณ  ์žˆ๋Š” ๊ฐ ํŽ˜์ด์ง€์˜ ๋””๋ ‰ํ† ๋ฆฌ ๋ช…์„ Uppercase์—์„œ Lowercase๋กœ ๋ฐ”๊พธ๋Š” ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ๊ฐ€ ์‹ถ์–ด ๋‚ด๊ฐ€ Assign์„ ๊ฑธ์–ด Issue๋ฅผ ํŒŒ๊ณ  ์ž‘์—…์— ์ฐฉ์ˆ˜ํ–ˆ๋‹ค.

 

VS Code์—์„œ ๊ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ช…์„ ๋Œ€๋ฌธ์ž์—์„œ ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  (์˜ˆ๋ฅผ ๋“ค๋ฉด Projects -> projects) ํ‰์†Œ์ฒ˜๋Ÿผ ์Šคํ…Œ์ด์ง• ํ›„ ํ‘ธ์‰ฌ๋ฅผ ํ–ˆ๋Š”๋ฐ ์™ ๊ฑธ... ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋‹ค๊ณ  ํ•œ๋‹ค.

 

๐Ÿ˜… git์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

๊ตฌ๊ธ€์„ ๋– ๋Œ๋ฉฐ ์•Œ์•„๋ณด๋‹ˆ git์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์ผ๋ช…์ด๋‚˜ ๊ฒฝ๋กœ๋ช…์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์—†๋‹ค๋Š” ๋ง์ด ๋‚˜์˜ค๋Š” ๊ฒƒ.

๋”ฐ๋ผ์„œ git config ๋ช…๋ น์„ ํ†ตํ•ด ํŒŒ์ผ๋ช… ํ˜น์€ ๊ฒฝ๋กœ๋ช… ์ƒ์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋„๋ก ํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋‹ค.

 

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

git config core.ignorecase false

true๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ธ๋ฐ, true๋Š” ignorecase ์ฆ‰, ๋Œ€์†Œ๋ฌธ์ž์˜ ๊ตฌ๋ถ„์„ ํ•˜์ง€ ์•Š๊ฒ ๋‹ค๋Š” ๋ง์ด๋‹ค.

 

git config๋ฅผ ๊ฑด๋“œ๋Š” ์ผ์€ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ์˜ํ–ฅ์„ ๋ผ์น˜๋ฏ€๋กœ, ์œ„ ๋ช…๋ น์„ ๋‚ด๋ฆฌ๊ธฐ ์ „์—, ํŒ€์›๋“ค์—๊ฒŒ ์‚ฌ์ •์„ ์„ค๋ช…ํ•˜๊ณ  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์„ ํ—ˆ์šฉํ–ˆ๋‹ค.

์–ด์ฐจํ”ผ ํ•ด์•ผํ•œ๋‹ค๊ณ  ์•„ ใ…‹ใ…‹

 

 

๐Ÿฅน ๋Œ€์†Œ๋ฌธ์ž๋งŒ ๊ตฌ๋ถ„์‹œํ‚ค๋ฉด ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ...

 

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด git์—๊ฒŒ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •์„ ํ•ด์ค€ ๋’ค, ๋‹ค์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ช…์„ Upper์—์„œ Lower๋กœ ๋ณ€๊ฒฝ ํ›„ ๋‹ค์‹œ ์Šคํ…Œ์ด์ง•, push๋ฅผ ํ–ˆ๋Š”๋ฐ ์™ ๊ฑธ....

 

๊ธฐ์กด Uppercase๋กœ ์ง€์–ด์ง„ ๋””๋ ‰ํ† ๋ฆฌ์™€ Lowercase๋กœ ์ง€์–ด์ง„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์›๊ฒฉ ์ €์žฅ์†Œ์— ๊ณต์กดํ•˜๊ณ  ์žˆ์—ˆ๋‹ค....

 

๐Ÿ˜… ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ํŒŒ์ผ๋ช…์„ ๋ฐ”๊ฟ€ ๋•Œ์—๋Š” git mv

 

์œ„์—์„œ VS Code์—์„œ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์„ ๋ฐ”๊พธ์—ˆ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์ด๋Š” ๋กœ์ปฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๊ณ , ์Šคํ…Œ์ด์ง• ํ›„ Push ํ•  ์‹œ, ์ด๋Š” ์ƒˆ๋กœ ํŒŒ์ผ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๊ณ  ์ธ์‹์„ ํ•˜๋Š”๋“ฏ ํ•˜์˜€๋‹ค.

 

๋”ฐ๋ผ์„œ ๊ตฌ๊ธ€์„ ๋” ๋– ๋Œ๋ฉฐ ์•Œ์•„๋ณธ ๊ฒฐ๊ณผ, ์›๊ฒฉ ์ €์žฅ์†Œ์— ์˜ฌ๋ผ๊ฐ„ ๋””๋ ‰ํ† ๋ฆฌ๋‚˜ ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝํ•  ๋•Œ์—๋Š” ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝํ•œ ๋’ค ์Šคํ…Œ์ด์ง•, push๊ฐ€ ์•„๋‹ˆ๋ผ git mv ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ git reset --hard ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ด์ „ commit์œผ๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ฐ•์ œ๋กœ ๋˜๋Œ๋ฆฐ ๋’ค, ์•„๋ž˜์™€ ๊ฐ™์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ๋ช…์„ ๋ฐ”๊พธ๊ณ ์ž ํ•˜์˜€๋‹ค.

git mv Projects projects

ํ•˜์ง€๋งŒ invalid argument ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋ฉด์„œ ๋””๋ ‰ํ† ๋ฆฌ๋ช…์ด ๋ณ€๊ฒฝ๋˜์ง€๊ฐ€ ์•Š์•˜๊ณ , ์ด์— ๋Œ€ํ•ด์„œ ๋” ์•Œ์•„๋ณด๋‹ˆ ๊ฐ„ํ˜น ๋””๋ ‰ํ† ๋ฆฌ๋ช…์„ ๋ณ€๊ฒฝํ•˜๋ ค ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ผ๊ณ  ํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์ „์— ์ž„์‹œ๋กœ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค๊ฐ€ ๊ทธ ์ž„์‹œ๋กœ ๋ณ€๊ฒฝ๋œ ์ด๋ฆ„์„ ๋‹ค์‹œ ๋ฐ”๊พธ๊ณ ์ž ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

 

์•„๋ž˜์ฒ˜๋Ÿผ.

git mv Projects tmp
git mv tmp projects

์ด์™€ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ๋ช…์„ ๋ณ€๊ฒฝ ํ›„ commit - push๋ฅผ ํ•˜๋‹ˆ create๋‚˜ delete๊ฐ€ ์•„๋‹Œ rename์œผ๋กœ ์Šคํ…Œ์ด์ง•์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜๊ฐ€ ์žˆ์—ˆ๋‹ค.

 

๐Ÿฅน git ํ™œ์šฉ์ด ์•„์ง ๋ฏธ์ˆ™ํ•˜๋„ค...

 

๊ฐ„๋‹จํ•ด๋ณด์˜€๋˜ ์ž‘์—…์—์„œ ๋‚œ๋ฐ์—†์ด ์‚ฝ์งˆ์„ ํ•˜๋ฉฐ PM ์นœ๊ตฌ์™€ ์–˜๊ธฐ๋„ ๋‚˜๋ˆ ๋ณด๊ณ  ํ•˜๋‹ˆ, ๋‚˜๋Š” ์•„์ง git์„ ์ž˜ ๋‹ค๋ฃจ์ง€ ๋ชปํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ƒˆ์‚ผ ๋Š๋ผ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

git์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•  ๋•Œ์—๋Š” mv, ์‚ญ์ œํ•  ๋•Œ์—๋Š” rm์„ ์จ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ๋ชฐ๋ž๊ณ , ์•„์ง commit hash๋ฅผ ํ†ตํ•ด ์ปค๋ฐ‹์„ ๋˜๋Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ ๋˜ํ•œ ์•„์ง ๋ฏธ์ˆ™ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ ์ž ๋ธ”๋กœ๊ทธ์— ์‚ฝ์งˆ ๊ณผ์ •์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ... ๋‹ค์Œ์—๋Š” ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ฉด ๋˜๊ฒ ์ง€.

 

2023 DEF:CON ์›น ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‚˜๋ฅผ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฉด์œผ๋กœ ์„ฑ์žฅ์‹œํ‚ค๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์• ์ •์ด ๋งŽ์ด ๊ฐ„๋‹ค.