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

2.40๊ฐœ์›” ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ๋ถ„์‚ฐ ์†Œ์Šค ์ œ์–ด ์‹œ์Šคํ…œ Git XNUMX์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Git์€ ๋ถ„๊ธฐ ๋ฐ ๋ณ‘ํ•ฉ ๋ถ„๊ธฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ์—ฐํ•œ ๋น„์„ ํ˜• ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์„ฑ๋Šฅ ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ก์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์†Œ๊ธ‰ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ €ํ•ญ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ์ปค๋ฐ‹์—์„œ ์ „์ฒด ์ด์ „ ๊ธฐ๋ก์˜ ์•”์‹œ์  ํ•ด์‹ฑ์ด ์‚ฌ์šฉ๋˜๋ฉฐ ๊ฐœ๋ฐœ์ž์˜ ๋””์ง€ํ„ธ ์„œ๋ช…์œผ๋กœ ๊ฐœ๋ณ„ ํƒœ๊ทธ ๋ฐ ์ปค๋ฐ‹์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฆด๋ฆฌ์Šค์™€ ๋น„๊ตํ•˜์—ฌ 472๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฐธ์—ฌํ•˜์—ฌ ์ค€๋น„ํ•œ ์ƒˆ ๋ฒ„์ „์—๋Š” 88๊ฐœ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์—ˆ์œผ๋ฉฐ ์ด ์ค‘ 30๋ช…์ด ์ฒ˜์Œ์œผ๋กœ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ํ˜์‹ :

  • git-jump ์Šคํฌ๋ฆฝํŠธ์—๋Š” ์ด์ „์— ์ง€์›๋˜์—ˆ๋˜ Vim ํŽธ์ง‘๊ธฐ ์™ธ์— Emacs ํŽธ์ง‘๊ธฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Git-jump๋Š” ๋น ๋ฅธ ํƒ์ƒ‰์„ ์œ„ํ•ด ํŒŒ์ผ์˜ ์œ„์น˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋กœ ๋ณด๋‚ด๊ณ  ํŠน์ • ์œ„์น˜์˜ ์ฝ”๋“œ ํŽธ์ง‘์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, git-jump๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ์ง‘๊ธฐ์—์„œ ๋ณ‘ํ•ฉ ์ถฉ๋Œ ๊ตฌ๋ฌธ ๋ถ„์„, ์ฐจ์ด์  ํ‰๊ฐ€, ๊ฒ€์ƒ‰ ์ˆ˜ํ–‰์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์ค„ ์‚ฌ์ด๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค("git jump grep foo"๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ ์™€์ผ๋“œ์นด๋“œ "foo"๊ฐ€ ์žˆ๋Š” ์œ„์น˜ ์‚ฌ์ด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Œ). ๋ฐœ์ƒ) .
  • "git cat-file"์€ "--use-mailmap"๊ณผ ํ•จ๊ป˜ "-s" ๋ฐ "--batch-check" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฒฐ์ •ํ•˜๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ๋ฉ”์ผ๋งต์— ์ง€์ •๋œ ์ด๋ฉ”์ผ ๋ฐ”์ธ๋”ฉ(์ด์ „์˜ "--use-mailmap" ์˜ต์…˜์€ ์ฝ˜ํ…์ธ  ์ถœ๋ ฅ์—๋งŒ ์˜ํ–ฅ์„ ์ฃผ๋ฉฐ ์ด์ „ ์ด๋ฆ„/์ด๋ฉ”์ผ ์Œ๊ณผ ๊ต์ฒด๋œ ์ด๋ฆ„/์ด๋ฉ”์ผ ์Œ์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).
  • ํ•„์š”ํ•œ ".gitattributes" ํŒŒ์ผ์ด ์žˆ๋Š” ํŠธ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด "--source" ์˜ต์…˜์ด "git check-attr" ๋ช…๋ น์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ".gitattributes" ํŒŒ์ผ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ ์‹ค์ œ ์†์„ฑ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • "git bisect" ๋ช…๋ น์˜ ๊ตฌํ˜„์€ C๋กœ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์–ด ๊ธฐ๋ณธ git ์‹คํ–‰ ํŒŒ์ผ์— ๋‚ด์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์—๋Š” ๋ช…๋ น์ด Shell ์Šคํฌ๋ฆฝํŠธ ํ˜•์‹์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค).
  • "git add โ€”interactive" ๋ช…๋ น์˜ ์ด์ „ Shell ๊ตฌํ˜„์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(git 2.26์—์„œ๋Š” ๋‚ด์žฅ C ๋ฒ„์ „์ด ์ œ๊ณต๋˜์—ˆ์ง€๋งŒ ์ด์ „ Shell ๊ตฌํ˜„์€ ๊ณ„์† ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ add.interactive.useBuiltin ์„ค์ •์— ์˜ํ•ด ๊ทœ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค).
  • 'git merge-tree' ๋ช…๋ น์— '--merge-base' ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "git range-diff" ๋ช…๋ น์— "--abbrev=" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "
  • "git var GIT_EDITOR"์™€ ์œ ์‚ฌํ•˜๊ฒŒ "git var" ๋ช…๋ น์„ ํ†ตํ•ด GIT_SEQUENCE_EDITOR ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ rebase ๋ช…๋ น์˜ ๋Œ€ํ™”ํ˜• ๋ชจ๋“œ์— ๋Œ€ํ•œ ๋ชฉ๋ก ํŽธ์ง‘๊ธฐ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ํšจ ๊ธฐ๊ฐ„์ด ์ œํ•œ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ๋Œ€ํ•œ ์ง€์›์ด ๊ณ„์ • ํ•˜์œ„ ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Bash์šฉ ์ž…๋ ฅ ์™„์„ฑ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด์ œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“œ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€