๐ŸŽ git add, commit, diff ์‰ฝ๊ฒŒ ํ•˜๋Š” ๋ฒ• (VSCode)

์œ ์ง„ยท2025๋…„ 5์›” 16์ผ

git

๋ชฉ๋ก ๋ณด๊ธฐ
4/13
post-thumbnail

git commit ๋ญํ•˜๋Ÿฌ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•จ

๊ฐ•์˜๋ฅผ ์—ด์ž๋งˆ์ž ์ ํ˜€์žˆ๋Š” ๋ง์ด๋‹ค. ์•„๋‹ˆ 5๋ฒˆ ํ•ด์˜ค๋ผ๋งค!!(์•ˆํ•จ)


๊ทธ๋ƒฅ ์—๋””ํ„ฐ ๋ถ€๊ฐ€๊ธฐ๋Šฅ ์“ฐ๋Š” ๊ฒŒ ๋” ๋‚˜์„์ง€๋„

์•„๋ฌดํŠผ ์ด์œ ๋ฅผ ๋“ค์–ด๋ณด๋‹ˆ ์š”์ฆ˜ ์›ฌ๋งŒํ•œ ์—๋””ํ„ฐ๋“ค์—” ๊ธฐ๋ณธ์ ์œผ๋กœ git์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ๋“ค์ด ๋‚ด์žฅ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ž€๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์ง€๊ธˆ ์“ฐ๊ณ  ์žˆ๋Š” vscode์˜ ์ด ๋ฒ„ํŠผ์ด ๋ฐ”๋กœ git ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

(๊ทธ๋Ÿฌ๊ณ ๋ณด๋‹ˆ ๋ธŒ๋žœ์น˜ ๋ชจ์–‘์ด๋‹ค)
๋ˆŒ๋Ÿฌ๋ณด๋ฉด

์ด๋ ‡๊ฒŒ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. +-๋ฒ„ํŠผ์„ ํ†ตํ•ด ์Šคํ…Œ์ด์ง•(add)๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ  ์œ„ ๋ฉ”์„ธ์ง€๋กœ commit๋„ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ•์˜์—์„œ๋Š” ์ด๊ฒƒ์ €๊ฒƒ ์•Œ๋ ค์คฌ๋Š”๋ฐ ์ง€๊ธˆ ๋ฒ„์ „์—์„  ๊ทธ๋ƒฅ ๊ฐ€์‹œ์ ์œผ๋กœ๋„ ๋ญ๊ฐ€ ๋ญ”์ง€ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์“ฐ๋Š” ์—๋””ํ„ฐ๊ฐ€ ํ™•์ •๋˜๊ณ  ์ต์ˆ™ํ•ด์ง„๋‹ค๋ฉด ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ด€๋ฆฌํ•  ๋•Œ๊ฐ€ ํ„ฐ๋ฏธ๋„๋กœ ํ•  ๋•Œ๋ณด๋‹ค ๊ฐ„ํŽธํ•ด์งˆ ๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋ฆฌ๊ณ  git diff

ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  git diff๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Vim ์—๋””ํ„ฐ ๊ฐ™์€ ๊ฒŒ ํ„ฐ๋ฏธ๋„์— ์—ด๋ฆฐ๋‹ค.

๋Œ€์ถฉ ์ˆ˜์ •์„ ํ•˜๊ณ  ์ €์žฅํ•œ ํ›„์— git diff๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด
asdfasdf๋ฅผ ์ง€์› ๋‹ค๊ฐ€ asdfasdfa๋ฅผ ์ผ๋‹ค๋Š” ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ Vim ํŠน์œ ์˜ :๊ฐ€ ๋– ์žˆ๋‹ค.
:๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๋ƒฅ j/k๋กœ ์Šคํฌ๋กค๋ฐ”๋ฅผ ์กฐ์ž‘ํ•˜๋ฉฐ, ์—๋””ํ„ฐ๋ฅผ ๋„๊ณ  ์‹ถ๋‹ค๋ฉด q๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ข€ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ ๊ฑด์ง€ ์Šคํฌ๋กค๋ฐ”๋Š” ๊ทธ๋ƒฅ ํœ ๋กœ ์กฐ์ • ๊ฐ€๋Šฅํ–ˆ๋‹ค.

๋˜ํ•œ, ์ŠคํŽ˜์ด์Šค๋ฐ”๋‚˜ ์—”ํ„ฐํ‚ค ๋“ฑ์„ ์ผ๋‹ค๊ฐ€ ์ง€์šฐ๋ฉด ๊ทธ๊ฒƒ๋„ ์ „๋ถ€ ์ง€์› ๋‹ค๊ฐ€ ๋‹ค์‹œ ์“ด ๊ฑธ๋กœ ์ธ์‹ํ•œ๋‹ค๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋Š”๋ฐ ๊ทธ๊ฒƒ๋„ ๊ณ ์ณ์ง„ ๋“ฏํ•˜๋‹ค.
์•„๋ฌดํŠผ ๊ทธ๋Ÿฐ ๋ฒ„๊ทธ ๋•Œ๋ฌธ์— difftool์„ ์“ด๋‹ค.

์ž…๋ ฅํ•˜๋ฉด ์œ„์ฒ˜๋Ÿผ ๋œจ๋Š”๋ฐ ๊ทธ๋ƒฅ y๋ฅผ ๋ˆ„๋ฅด๊ณ  ์—”ํ„ฐ

๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํˆด์ด ๋‚˜์˜จ๋‹ค. (์ด ๋˜ํ•œ Vim์ด๋‹ค)
๊ทผ๋ฐ ์—…๋ฐ์ดํŠธ๋œ vs code๋Š” ์ด๊ฒƒ ์—ญ์‹œ ๊ทธ๋ƒฅ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ƒฅ ํŒŒ์ผ ์ˆ˜์ • ํ›„์— ์ขŒ์ธก์— Changes์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋ˆ„๋ฅด๋ฉด ๋ฐ”๋€ ์ ์ด ์ž˜ ๋ณด์ธ๋‹ค.


๋˜ํ•œ ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋“ค๋„ ์•Œ๋ ค์ค€๋‹ค.

git diff ์ปค๋ฐ‹id = ์ตœ๊ทผ commit์ด ์•„๋‹Œ ๊ณผ๊ฑฐ์˜ ํŠน์ • commit๊ณผ ํ˜„์žฌ ํŒŒ์ผ์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ์œผ๋ฉด ํ•ด๋‹น ์ปค๋ฐ‹id๋ฅผ ์ž…๋ ฅํ•ด์„œ ๋น„๊ต ๊ฐ€๋Šฅํ•˜๋‹ค. ์ปค๋ฐ‹id๋Š” log๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

git diff ์ปค๋ฐ‹id1 ์ปค๋ฐ‹id2 = ๊ณผ๊ฑฐ์˜ ํŠน์ • ๋‘ ์ปค๋ฐ‹์„ ๋น„๊ต

๊ทธ๋ฆฌ๊ณ  ์ด๋Š” difftool๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.

๊ฐ•์˜์—์„œ ์‚ฌ์šฉํ•œ ๊ฑด๋ฐ vscode ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์ค‘์— git graph๋ผ๋Š” ๊ฒƒ์„ ๊น”๋ฉด ์•„๊นŒ ๋งํ•œ ์ตœ์‹  ๊ธฐ๋Šฅ ๊ฐ™์€ ๊ฒƒ๋„ ์“ธ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

์•„์ง๊นŒ์ง€ ์™„์ „ ๊ธฐ์ดˆ๋ผ์„œ ์•„๋ฌด ๋ฌด๋ฆฌ๊ฐ€ ์—†์—ˆ๋Š”๋ฐ ์•„๋ฌดํŠผ ์ผ๋‹จ ์ด๋Ÿฐ ์šฉ์–ด๋“ค์ด๋‚˜ ์‚ฌ์šฉ๋ฒ•๋“ค์€ ์ต์ˆ™ํ•ด์ ธ ๋†“์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์œผ๋‹ˆ ์ด๋ฏธ ์‹œ์ž‘ํ•œ ๊ฐ•์˜๋Š” ๋‹ค ๋“ค์–ด๋ด์•ผ๊ฒ ๋‹ค.

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