Git 2.56 ์†Œ์Šค ์ œ์–ด ์‹œ์Šคํ…œ ์ถœ์‹œ

๋ถ„์‚ฐ ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ธ Git 2.56์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Git์€ GPLv2+ ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜์—ฌ ์ด๋ฒˆ ์ƒˆ ๋ฒ„์ „์—๋Š” 104๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ 748๊ฐœ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ทธ์ค‘ 39๋ช…์€ Git ๊ฐœ๋ฐœ์— ์ฒ˜์Œ ์ฐธ์—ฌํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ์‹ ๊ธฐ๋Šฅ(1, 2, 3):

  • ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ ์‹œ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ "git add --resolved" ๋ชจ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ๋Š” ํŒŒ์ผ์—์„œ ์ถฉ๋Œ ๋งˆ์ปค๋ฅผ ํ™•์ธํ•˜๊ณ , ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒŒ์ผ์—์„œ ๋งˆ์ปค๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํŒŒ์ผ์„ ์ธ๋ฑ์‹ฑํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ˆ˜์ •์ด ํ•„์š”ํ•œ ํŒŒ์ผ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. "git add --update" ๋ช…๋ น๊ณผ ๋‹ฌ๋ฆฌ, ์ด ์ƒˆ๋กœ์šด ๋ชจ๋“œ๋Š” ์ถฉ๋Œ ์ƒํƒœ์˜ ํŒŒ์ผ๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ถฉ๋Œ๊ณผ ๊ด€๋ จ ์—†๋Š” ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์€ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ฏธ์™„๋ฃŒ๋œ ํŽธ์ง‘ ๋‚ด์šฉ์ด ๋‚จ์•„ ์žˆ๋”๋ผ๋„ ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค("git add --update" ๋ช…๋ น์€ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ด์ „์— ์ถ”์ ๋œ ๋ชจ๋“  ๋ณ€๊ฒฝ ํŒŒ์ผ์„ ์ธ๋ฑ์Šค์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค).
  • ๋Œ€๊ทœ๋ชจ ์ €์žฅ์†Œ ์ž‘์—… ์†๋„๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ ๋ฐ ์ปค๋ฐ‹ ๋น„๊ต ์‹œ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ๊ณตํ†ต ์ปค๋ฐ‹์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ตœ์ ํ™”๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ด ํ”„๋กœ์„ธ์Šค๋Š” ํŠน์ • ๋ธŒ๋žœ์น˜์—๋งŒ ์†ํ•˜๋Š” ์ปค๋ฐ‹์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ณตํ†ต ์กฐ์ƒ์„ ์ฐพ์€ ํ›„ ์ฆ‰์‹œ ์Šค์บ”์„ ์ค‘์ง€ํ•˜๊ณ  ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ์ถ”๊ฐ€๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธํ•œ ํ•œ ์ €์žฅ์†Œ์—์„œ๋Š” ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ํ‰๊ท  20๋ฐฐ ํ–ฅ์ƒ๋˜์—ˆ๊ณ , ๋‹ค๋ฅธ ์ €์žฅ์†Œ์—์„œ๋Š” ์ตœ๋Œ€ 70๋ฐฐ๊นŒ์ง€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฐ๊ณผ๋Š” ์ปค๋„์ด ์„ค์น˜๋œ ์ €์žฅ์†Œ์—์„œ "git merge-base --all v4.8 v4.9" ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Linux ํƒ์ƒ‰ ๋‹จ๊ณ„ ์ˆ˜๊ฐ€ 16๋งŒ 7์ฒœ์—์„œ 3์ฒœ 8๋ฐฑ์œผ๋กœ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • "--path-walk" ์žฌํŒจํ‚ค์ง• ๋ชจ๋“œ๊ฐ€ ์„œ๋ฒ„ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ๊ฐœ์„ ๋˜์–ด ๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๋”์šฑ ์••์ถ•๋œ ํŒฉ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: Fluent UI ์ €์žฅ์†Œ์˜ ๊ฒฝ์šฐ "--path-walk"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒฉ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ 558MB์—์„œ 164MB๋กœ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค). ์ƒˆ ๋ฒ„์ „์€ Git ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค์—์„œ ์ž‘์—… ์†๋„๋ฅผ ๋†’์ด๊ณ  ํฌํฌ๋ฅผ ๋ฉ”์ธ ์ €์žฅ์†Œ์™€ ๊ฒฉ๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„๋‹ฌ ๊ฐ€๋Šฅ์„ฑ ๋น„ํŠธ๋งต ๋ฐ ๋ธํƒ€ ์•„์ผ๋žœ๋“œ์™€ ํ•จ๊ป˜ "--path-walk" ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋Œ€๊ทœ๋ชจ ์ €์žฅ์†Œ์—์„œ ๋ถˆํ•„์š”ํ•œ ๊ณ„์‚ฐ์„ ์œ ๋ฐœํ•˜๋˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌํ”„ํ…Œ์ด๋ธ”์— ๊ธฐ๋กํ•  ๋•Œ ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ ์ƒํƒœ ๊ฒ€์‚ฌ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ๊ณ , ์ƒˆ ํŒฉํŒŒ์ผ์„ ์‚ฝ์ž…ํ•  ๋•Œ๋งˆ๋‹ค ๋ชฉ๋ก์„ ๋‹ค์‹œ ์Šค์บ”ํ•˜๋Š” ์ž‘์—…์ด ์—†์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๋ˆ„์ ๋œ ๋Œ€๋Ÿ‰ ์‚ญ์ œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๋ฆฌํ”„ํ…Œ์ด๋ธ” ์ž‘์—… ์†๋„๊ฐ€ ํ–ฅ์ƒ๋˜์—ˆ์œผ๋ฉฐ, ํŒŒ์ผ ๊ฒฝ๋กœ ์ œํ•œ์„ ์ง€์ •ํ•  ๋•Œ git diff ์„ฑ๋Šฅ์ด ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋Œ€๋Ÿ‰ ์‚ญ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฆฌํ”„ํ…Œ์ด๋ธ” ์ž‘์—… ์†๋„๊ฐ€ 65๋ฐฐ(13์ดˆ์—์„œ 0.2์ดˆ๋กœ) ํ–ฅ์ƒ๋˜์—ˆ๊ณ , ์ธ๋ฑ์Šค์— 500000๋งŒ ๊ฐœ์˜ ํ•ญ๋ชฉ์ด ์žˆ๋Š” Chromium ์ €์žฅ์†Œ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋˜ git diff ๋ช…๋ น์ด ์ด์ œ 8๋ถ„์—์„œ 0.07์ดˆ๋กœ ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋Š” ์‹คํ—˜์ ์ธ "git history" ๋ช…๋ น์–ด๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์–ด ์„ ํƒํ•œ ์ปค๋ฐ‹์„ ์ œ๊ฑฐํ•˜๊ณ  ํ•˜์œ„ ์ปค๋ฐ‹์„ ์ƒ์œ„ ์ปค๋ฐ‹์— ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” "git history drop" ์ž‘์—…์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • `git branch --delete-merged 'origin/*' 'topic-*'` ๋ช…๋ น์–ด๊ฐ€ ์ถ”๊ฐ€๋˜์–ด, ์ด๋ฏธ ์™ธ๋ถ€ ์ €์žฅ์†Œ์— ์ปค๋ฐ‹๋œ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ๊ทธ๋ฃน์„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋žœ์น˜์™€ ์ €์žฅ์†Œ๋ฅผ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, `--dry-run` ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹ค์ œ๋กœ ์‚ญ์ œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ ๋„ ์‚ญ์ œ ํ›„๋ณด๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐธ์กฐ๋ฅผ ์ƒ์„ฑ, ์‚ญ์ œ, ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ €์ˆ˜์ค€ ์ž‘์—…์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ "git refs create|update|delete|rename" ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ "git bisect run" ๋ช…๋ น์— "--reset-when-found=[ ์˜ต์…˜"์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ]"๋Š” ๊ฒ€์ƒ‰์ด ์‹œ์ž‘๋˜๊ธฐ ์ „ ์ƒํƒœ๋กœ ์ €์žฅ์†Œ๋ฅผ ์ž๋™์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜, "git bisect reset" ๋ช…๋ น์„ ๋ณ„๋„๋กœ ์‹คํ–‰ํ•  ํ•„์š” ์—†์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์ปค๋ฐ‹์„ ํ™œ์„ฑ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด์ œ 'git replay' ๋ช…๋ น์–ด์— '--linearize' ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ์ž‘์—… ํŠธ๋ฆฌ์— ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ ๋„ 'git rebase --no-rebase-merges'์™€ ์œ ์‚ฌํ•œ ํ‰๋ฉด ๋ณ‘ํ•ฉ ํ† ํด๋กœ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ "git log --follow" ๋ช…๋ น์–ด๋Š” ์„œ๋ธŒ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ๊ณผ ๊ฐ™์ด ๋น„์„ ํ˜•์ ์ธ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ์—์„œ ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ฒฝ๋กœ๋Š” ์ด์ œ ๊ฐ ์ƒ์œ„ ์ปค๋ฐ‹์— ๋Œ€ํ•ด ๋ณ„๋„๋กœ ๊ธฐ๋ก๋˜๋ฏ€๋กœ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์ˆœ์„œ์™€ ๊ด€๊ณ„์—†์ด ๊ฒฐ๊ณผ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ์ธ๋ฑ์Šค์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์™ธ๋ถ€ ์ €์žฅ์†Œ์—์„œ ์˜จ๋””๋งจ๋“œ๋กœ ๋‹ค์šด๋กœ๋“œ๋œ ๋Œ€์šฉ๋Ÿ‰ ๋ธ”๋กญ์„ ์ œ๊ฑฐํ•˜๋Š” "git repack -a --filter=blob:limit=1m --drop-filtered" ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋Š” ํ–ฅํ›„ ์ ‘๊ทผ ์‹œ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
  • ์ด์ œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๋ฃจํŠธ๋ฅผ ๊ฐ€์ง„ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด "git log --graph" ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ด€๋ จ ์—†๋Š” ์ปค๋ฐ‹์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋“ค์—ฌ์“ฐ๊ธฐ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
  • "git push origin main" ๋Œ€์‹  "git push origin/main"์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ "git branch --set-upstream-to=origin/main" ๋Œ€์‹  "git branch --set-upstream-to origin main"์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์˜คํƒ€๊ฐ€ ์ด์ œ ๊ฐ์ง€๋˜์–ด ์˜ฌ๋ฐ”๋ฅธ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํžŒํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster