Skip to content

Latest commit

ย 

History

History
240 lines (209 loc) ยท 17.4 KB

File metadata and controls

240 lines (209 loc) ยท 17.4 KB

Git ๊ธฐ์ดˆ

Git์˜ ํ•ต์‹ฌ์€ ๋ญ˜๊นŒ? ์ด ์งˆ๋ฌธ์€ Git์„ ์ดํ•ดํ•˜๋Š”๋ฐ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•˜๋‹ค. Git์ด ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์ดํ•ดํ•œ๋‹ค๋ฉด ์‰ฝ๊ฒŒ Git์„ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Git์„ ๋ฐฐ์šฐ๋ ค๋ฉด Subversion์ด๋‚˜ Perforce ๊ฐ™์€ ๋‹ค๋ฅธ VCS๋ฅผ ์‚ฌ์šฉํ•˜๋˜ ๊ฒฝํ—˜์„ ๋ฒ„๋ ค์•ผ ํ•œ๋‹ค. Git์€ ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‹ฌ๋ผ์„œ ๋‹ค๋ฅธ VCS์—์„œ ์“ฐ๋˜ ๊ฐœ๋…์œผ๋กœ๋Š” ํ—ท๊ฐˆ๋ฆฐ๋‹ค. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋งค์šฐ ๋น„์Šทํ•˜์ง€๋งŒ, ์ •๋ณด๋ฅผ ์ทจ๊ธ‰ํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค. ์ด๋Ÿฐ ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๋ฉด Git์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต์ง€ ์•Š๋‹ค.

์ฐจ์ด๊ฐ€ ์•„๋‹ˆ๋ผ ์Šค๋ƒ…์ƒท

Subversion๊ณผ Subversion ๋น„์Šทํ•œ ๋†ˆ๋“ค๊ณผ Git์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ์žˆ๋‹ค. ํฐ ํ‹€์—์„œ ๋ดค์„ ๋•Œ VCS ์‹œ์Šคํ…œ ๋Œ€๋ถ€๋ถ„์€ ๊ด€๋ฆฌํ•˜๋Š” ์ •๋ณด๊ฐ€ ํŒŒ์ผ๋“ค์˜ ๋ชฉ๋ก์ด๋‹ค. CVS, Subversion, Perforce, Bazaar ๋“ฑ์˜ ์‹œ์Šคํ…œ์€ ๊ฐ ํŒŒ์ผ์˜ ๋ณ€ํ™”๋ฅผ ์‹œ๊ฐ„์ˆœ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ฉด์„œ ํŒŒ์ผ๋“ค์˜ ์ง‘ํ•ฉ์„ ๊ด€๋ฆฌํ•œ๋‹ค(๋ณดํ†ต ๋ธํƒ€ ๊ธฐ๋ฐ˜ ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋ผ ํ•จ).

Storing data as changes to a base version of each file.
Figure 1. ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ณ€ํ™”๋ฅผ ์ €์žฅํ•˜๋Š” ์‹œ์Šคํ…œ๋“ค.

Git์€ ์ด๋Ÿฐ ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€๋„ ์ทจ๊ธ‰ํ•˜์ง€๋„ ์•Š๋Š”๋‹ค. ๋Œ€์‹  Git์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ ์Šค๋ƒ…์ƒท์˜ ์—ฐ์†์œผ๋กœ ์ทจ๊ธ‰ํ•˜๊ณ  ํฌ๊ธฐ๊ฐ€ ์•„์ฃผ ์ž‘๋‹ค. Git์€ ์ปค๋ฐ‹ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ทธ ์ˆœ๊ฐ„์„ ์ค‘์š”ํ•˜๊ฒŒ ์—ฌ๊ธด๋‹ค. ํŒŒ์ผ์ด ๋‹ฌ๋ผ์ง€์ง€ ์•Š์•˜์œผ๋ฉด Git์€ ์„ฑ๋Šฅ์„ ์œ„ํ•ด์„œ ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ์ง€ ์ด์ „ ์ƒํƒœ์˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋งํฌ๋งŒ ์ €์žฅํ•œ๋‹ค. Git์€ ๋ฐ์ดํ„ฐ๋ฅผ ์Šค๋ƒ…์ƒท์˜ ์ŠคํŠธ๋ฆผ์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•œ๋‹ค.

์‹œ๊ฐ„์ˆœ์œผ๋กœ ํ”„๋กœ์ ํŠธ์˜ ์Šค๋ƒ…์ƒท์„ ์ €์žฅ.
Figure 2. ์‹œ๊ฐ„์ˆœ์œผ๋กœ ํ”„๋กœ์ ํŠธ์˜ ์Šค๋ƒ…์ƒท์„ ์ €์žฅ.

์ด๊ฒƒ์ด Git์ด ๋‹ค๋ฅธ VCS์™€ ๊ตฌ๋ถ„๋˜๋Š” ์ ์ด๋‹ค. ์ด์  ๋•Œ๋ฌธ์— Git์€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๋“ค์ด ๊ณผ๊ฑฐ๋กœ๋ถ€ํ„ฐ ๋‹ต์Šตํ•ด์™”๋˜ ๋ฒ„์ „ ์ปจํŠธ๋กค์˜ ๊ฐœ๋…๊ณผ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๊ณ  ๋งŽ์€ ๋ถ€๋ถ„์„ ์ƒˆ๋กœ์šด ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณธ๋‹ค. Git์€ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์ž‘์€ ํŒŒ์ผ์‹œ์Šคํ…œ์ด๋‹ค. Git์€ ๋‹จ์ˆœํ•œ VCS๊ฐ€ ์•„๋‹ˆ๋‹ค. ch03-git-branching.asc์—์„œ ์„ค๋ช…ํ•  Git ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ป๊ฒŒ ๋˜๋Š” ์ด๋“์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•œ๋‹ค.

๊ฑฐ์˜ ๋ชจ๋“  ๋ช…๋ น์„ ๋กœ์ปฌ์—์„œ ์‹คํ–‰

๊ฑฐ์˜ ๋ชจ๋“  ๋ช…๋ น์ด ๋กœ์ปฌ ํŒŒ์ผ๊ณผ ๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋Š” ํ•„์š” ์—†๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋ช…๋ น์–ด๊ฐ€ ๋„คํŠธ์›Œํฌ์˜ ์†๋„์— ์˜ํ–ฅ์„ ๋ฐ›๋Š” CVCS์— ์ต์ˆ™ํ•˜๋‹ค๋ฉด Git์ด ๋งค์šฐ ๋†€๋ผ์šธ ๊ฒƒ์ด๋‹ค. Git์˜ ์ด๋Ÿฐ ํŠน์ง•์—์„œ ๋‚˜์˜ค๋Š” ๋ฏธ์น ๋“ฏํ•œ ์†๋„๋Š” ์˜ค์ง Git๋А๋‹˜๋งŒ์ด ๊ตฌ์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ „๋Šฅ์ด๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋กœ์ปฌ ๋””์Šคํฌ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ช…๋ น์ด ์ˆœ์‹๊ฐ„์— ์‹คํ–‰๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Git์€ ํ”„๋กœ์ ํŠธ์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์„œ๋ฒ„ ์—†์ด ์กฐํšŒํ•œ๋‹ค. ๊ทธ๋ƒฅ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ฝ์–ด์„œ ๋ณด์—ฌ ์ค€๋‹ค. ๊ทธ๋ž˜์„œ ๋ˆˆ ๊นœ์งํ•  ์‚ฌ์ด์— ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค ํŒŒ์ผ์˜ ํ˜„์žฌ ๋ฒ„์ „๊ณผ ํ•œ ๋‹ฌ ์ „์˜ ์ƒํƒœ๋ฅผ ๋น„๊ตํ•ด๋ณด๊ณ  ์‹ถ์„ ๋•Œ๋„ Git์€ ๊ทธ๋ƒฅ ํ•œ ๋‹ฌ ์ „์˜ ํŒŒ์ผ๊ณผ ์ง€๊ธˆ์˜ ํŒŒ์ผ์„ ๋กœ์ปฌ์—์„œ ์ฐพ๋Š”๋‹ค. ํŒŒ์ผ์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ๋ชจํŠธ์— ์žˆ๋Š” ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜๊ณ  ๋‚˜์„œ ์˜ˆ์ „ ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ฌ ํ•„์š”๊ฐ€ ์—†๋‹ค.

์ฆ‰ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์ด๊ฑฐ๋‚˜ VPN์— ์—ฐ๊ฒฐํ•˜์ง€ ๋ชปํ•ด๋„ ๋ง‰ํž˜ ์—†์ด ์ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น„ํ–‰๊ธฐ๋‚˜ ๊ธฐ์ฐจ ๋“ฑ์—์„œ ์ž‘์—…ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ์— ์ ‘์†ํ•˜๊ณ  ์žˆ์ง€ ์•Š์•„๋„ ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ๋‹ค(๋กœ์ปฌ ์ €์žฅ์†Œ๋ผ๋Š” ์ ์ด ๊ธฐ์–ต๋‚˜๋Š”์ง€). ๋‹ค๋ฅธ VCS ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•œ ์ผ์ด๋‹ค. Perforce๋ฅผ ์˜ˆ๋กœ ๋“ค์ž๋ฉด ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์„ ๋•Œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ๋ณ„๋กœ ์—†๋‹ค. Subversion์ด๋‚˜ CVS์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ์˜คํ”„๋ผ์ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์–ด์„œ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ์ปค๋ฐ‹ํ•  ์ˆ˜ ์—†๋‹ค. ๋งค์šฐ ์‚ฌ์†Œํ•ด ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ ์ด ์ƒํ™ฉ์— ๋ถ€๋‹ฅ์ณ๋ณด๋ฉด ๋А๊ปด์ง€๋Š” ์ฐจ์ด๊ฐ€ ๋งค์šฐ ํฌ๋‹ค.

Git์˜ ๋ฌด๊ฒฐ์„ฑ

Git์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์ „์— ํ•ญ์ƒ ์ฒดํฌ์„ฌ์„ ๊ตฌํ•˜๊ณ  ๊ทธ ์ฒดํฌ์„ฌ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒดํฌ์„ฌ์„ ์ดํ•ดํ•˜๋Š” Git ์—†์ด๋Š” ์–ด๋– ํ•œ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. ์ฒดํฌ์„ฌ์€ Git์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ(Atomic) ๋ฐ์ดํ„ฐ ๋‹จ์œ„์ด์ž Git์˜ ๊ธฐ๋ณธ ์ฒ ํ•™์ด๋‹ค. Git ์—†์ด๋Š” ์ฒดํฌ์„ฌ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์—†์–ด์„œ ํŒŒ์ผ์˜ ์ƒํƒœ๋„ ์•Œ ์ˆ˜ ์—†๊ณ  ์‹ฌ์ง€์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ์–ด๋ฒ„๋ฆด ์ˆ˜๋„ ์—†๋‹ค.

Git์€ SHA-1 ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒดํฌ์„ฌ์„ ๋งŒ๋“ ๋‹ค. ๋งŒ๋“  ์ฒดํฌ์„ฌ์€ 40์ž ๊ธธ์ด์˜ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด์ด๋‹ค. ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฒดํฌ์„ฌ์„ ๊ตฌํ•œ๋‹ค. SHA-1์€ ์•„๋ž˜์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋‹ค.

24b9da6552252987aa493b52f8696cd6d3b00373

Git์€ ๋ชจ๋“  ๊ฒƒ์„ ํ•ด์‹œ๋กœ ์‹๋ณ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ๊ฐ’์€ ์—ฌ๊ธฐ์ €๊ธฐ์„œ ๋ณด์ธ๋‹ค. ์‹ค์ œ๋กœ Git์€ ํŒŒ์ผ์„ ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ํŒŒ์ผ์˜ ํ•ด์‹œ๋กœ ์ €์žฅํ•œ๋‹ค.

Git์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋ฟ

Git์œผ๋กœ ๋ฌด์–ผ ํ•˜๋“  Git ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€ ๋œ๋‹ค. ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. ๋‹ค๋ฅธ VCS์ฒ˜๋Ÿผ Git๋„ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์žƒ์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ผ๋‹จ ์Šค๋ƒ…์ƒท์„ ์ปค๋ฐ‹ํ•˜๊ณ  ๋‚˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฌ๊ธฐ ์–ด๋ ต๋‹ค.

Git์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹ฌ๊ฐํ•˜๊ฒŒ ๋ง๊ฐ€์งˆ ๊ฑฑ์ • ์—†์ด ๋งค์šฐ ์ฆ๊ฒ๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‹คํ—˜์„ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ch02-git-basics-chapter.asc์„ ๋ณด๋ฉด Git์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๊ณ  ์†์‹ค์„ ์–ด๋–ป๊ฒŒ ๋ณต๊ตฌํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์„ธ ๊ฐ€์ง€ ์ƒํƒœ

์ด ๋ถ€๋ถ„์€ ์ค‘์š”ํ•˜๊ธฐ์— ์ง‘์ค‘ํ•ด์„œ ์ฝ์–ด์•ผ ํ•œ๋‹ค. Git์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ๋ถ€๋ถ„์ด๋‹ค. Git์€ ํŒŒ์ผ์„ Committed, Modified, Staged ์ด๋ ‡๊ฒŒ ์„ธ ๊ฐ€์ง€ ์ƒํƒœ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

  • Committed๋ž€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

  • Modified๋Š” ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ์•„์ง ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ๋งํ•œ๋‹ค.

  • Staged๋ž€ ํ˜„์žฌ ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ๊ณง ์ปค๋ฐ‹ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ‘œ์‹œํ•œ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ด ์„ธ ๊ฐ€์ง€ ์ƒํƒœ๋Š” Git ํ”„๋กœ์ ํŠธ์˜ ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„์™€ ์—ฐ๊ฒฐ๋ผ ์žˆ๋‹ค. Git ๋””๋ ‰ํ† ๋ฆฌ, ์›Œํ‚น ํŠธ๋ฆฌ, Staging Area ์ด๋ ‡๊ฒŒ ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€์ž.

Working tree, staging area, and Git directory.
Figure 3. ์›Œํ‚น ํŠธ๋ฆฌ, Staging Area, Git ๋””๋ ‰ํ† ๋ฆฌ.

Git ๋””๋ ‰ํ† ๋ฆฌ๋Š” Git์ด ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ์„ ๋งํ•œ๋‹ค. ์ด Git ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ Git์˜ ํ•ต์‹ฌ์ด๋‹ค. ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ์ €์žฅ์†Œ๋ฅผ Clone ํ•  ๋•Œ Git ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค.

์›Œํ‚น ํŠธ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ์˜ ํŠน์ • ๋ฒ„์ „์„ Checkout ํ•œ ๊ฒƒ์ด๋‹ค. Git ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ง€๊ธˆ ์ž‘์—…ํ•˜๋Š” ๋””์Šคํฌ์— ์žˆ๊ณ  ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์••์ถ•๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ์›Œํ‚น ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค.

Staging Area๋Š” Git ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋‹ค. ๋‹จ์ˆœํ•œ ํŒŒ์ผ์ด๊ณ  ๊ณง ์ปค๋ฐ‹ํ•  ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. Git์—์„œ๋Š” ๊ธฐ์ˆ ์šฉ์–ด๋กœ๋Š” โ€œIndexโ€ ๋ผ๊ณ  ํ•˜์ง€๋งŒ, โ€œStaging Areaโ€ ๋ผ๋Š” ์šฉ์–ด๋ฅผ ์จ๋„ ์ƒ๊ด€ ์—†๋‹ค.

Git์œผ๋กœ ํ•˜๋Š” ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ์›Œํ‚น ํŠธ๋ฆฌ์—์„œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ๋‹ค.

  2. Staging Area์— ํŒŒ์ผ์„ Stage ํ•ด์„œ ์ปค๋ฐ‹ํ•  ์Šค๋ƒ…์ƒท์„ ๋งŒ๋“ ๋‹ค. ๋ชจ๋“  ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์„ ํƒํ•˜์—ฌ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

  3. Staging Area์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ์ปค๋ฐ‹ํ•ด์„œ Git ๋””๋ ‰ํ† ๋ฆฌ์— ์˜๊ตฌ์ ์ธ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

Git ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์€ Committed ์ƒํƒœ์ด๋‹ค. ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  Staging Area์— ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด Staged์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  Checkout ํ•˜๊ณ  ๋‚˜์„œ ์ˆ˜์ •ํ–ˆ์ง€๋งŒ, ์•„์ง Staging Area์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์œผ๋ฉด Modified์ด๋‹ค. ch02-git-basics-chapter.asc์—์„œ ์ด ์ƒํƒœ์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ๋ฐฐ์šด๋‹ค. ํŠนํžˆ Staging Area๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋ถ€ํ„ฐ ์•„์˜ˆ ์ƒ๋žตํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€๋„ ์„ค๋ช…ํ•œ๋‹ค.