๋ฒ„์ „ ๊ด€๋ฆฌ๋ž€? Git ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ, Git๊ณผ GitHub ์ฐจ์ด

2025. 11. 16. 01:48ยทํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ (VCS, Version Control System)

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

1) ๋กœ์ปฌ ๋ฒ„์ „ ๊ด€๋ฆฌ 

  • ๊ฐ€์žฅ ๋ณดํŽธ์ ์ด๊ณ  ์‰ฌ์šด 1์ฐจ์›์  ๋ฒ„์ „๊ด€๋ฆฌ ๋ฐฉ๋ฒ•. 
  • ํŒŒ์ผ ๋ณต์‚ฌํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ใ…‹ใ…‹ 
  • ์ด ๋ฐฉ๋ฒ•์€ ์œ„ํ—˜ํ•จ. ์ž˜๋ชป๋˜๊ธฐ ์‰ฌ์›€. (์ž‘์—… ์ค‘์ด๋˜ ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ, ํŒŒ์ผ ์ˆ˜์ • ์‹ค์ˆ˜, ๋ณต์‚ฌ ์‹ค์ˆ˜.. ) 
  • ๋กœ์ปฌ VCS ๋ฅผ ๋งŒ๋“ค์–ด, ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ. 
  • ๋Œ€ํ‘œ์ ์ธ VCS ๋„๊ตฌ๋Š”, RCS (Revision Control System), 1982๋…„ ์ถœ์‹œ. 
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์ผ์—์„œ ๋ณ€๊ฒฝ๋˜๋Š” ๋ถ€๋ถ„(patch set)์„ ๊ด€๋ฆฌํ•œ๋‹ค. 
    • ์˜ค๋Š˜๋‚ ๊นŒ์ง€๋„ ์•„์ง ๋งŽ์€ ํšŒ์‚ฌ์—์„œ ์‚ฌ์šฉ์ค‘์ด๋ผ๊ณ  ํ•จ 

2) ์ค‘์•™์ง‘์ค‘์‹ ๋ฒ„์ „ ๊ด€๋ฆฌ (CVCS)

  • ํ˜‘์—…ํ•  ๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๋ฐฉ๋ฒ•. 
  • CVS, Subversion, Perforce ๊ฐ™์€ ์‹œ์Šคํ…œ์€ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋ฒ„๊ฐ€ ๋ณ„๋„๋กœ ์žˆ๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ค‘์•™ ์„œ๋ฒ„์—์„œ ํŒŒ์ผ์„ ๋ฐ›์•„์„œ ์‚ฌ์šฉ(Checkout)
  • ๋ชจ๋‘ ๋ˆ„๊ฐ€ ๋ญํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๊ณ , ๊ด€๋ฆฌ์ž๋Š” ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ• ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•จ. 
  • ์น˜๋ช…์ ์ธ ๊ฒฐ์  : ์ค‘์•™์„œ๋ฒ„์— ๋ฌธ์ œ ์ƒ๊ธฐ๋ฉด ์˜ฌ์Šคํƒ‘๋จ. ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์žƒ๊ฒŒ ๋œ๋‹ค. 

3) ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ( DVCS) 

  • Git, Mecurial, Bazaar, Darcs ๊ฐ™์€ DVCS ์—์„œ์˜ ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹จ์ˆœํžˆ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ์Šค๋ƒ…์ƒท์„ check  ์•„์›ƒํ•˜์ง€ ์•Š์Œ. 
  • ์ €์žฅ์†Œ ์ž์ฒด๋ฅผ ํžˆ์Šคํ† ๋ฆฌ์™€ ๋”๋ถˆ์–ด ์ „๋ถ€ ๋ณต์ œํ•จ. 
  • ์„œ๋ฒ„์— ๋ฌธ์ œ ์ƒ๊ธฐ๋ฉด ์ด ๋ณต์ œ๋ฌผ๋กœ ๋‹ค์‹œ ์ž‘์—… ๊ฐ€๋Šฅํ•˜๋‹ค. 
  • ๋˜ํ•œ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๊ฐ€ ์กด์žฌํ•˜๊ณ , ๋งŽ์„ ์ˆ˜ ์žˆ์Œ. 
  • ๊ณ„์ธต ๋ชจ๋ธ์ธ ์ค‘์•™์ง‘์ค‘ ์‹œ์Šคํ…œ์œผ๋กœ ํ•  ์ˆ˜ ์—†๋Š” ์›Œํฌ ํ”Œ๋กœ์šฐ๋„ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. 

 

Git ์ด๋ž€ 

  • ๋ถ„์‚ฐํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ. 
  • ์‰ฝ๊ฒŒ ๋งํ•ด, ํŒŒ์ผ(ํŠนํžˆ ์†Œ์Šค์ฝ”๋“œ)์˜ ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ๋ชจ๋‘ ์‚ฌ์ง„ ์ฐ๋“ฏ์ด ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ. 
  • 2005๋…„ ๋งŒ๋“ค์–ด์ง. 
  • 2002๋…„, Linux ์ปค๋„์€ BitKeeper๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ƒ์šฉ DVCS๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , 2005๋…„ BitKeeper ๊ณผ์˜ ๊ด€๊ณ„๊ฐ€ ํ‹€์–ด์ง€๋ฉด์„œ ์ž์ฒด ๋„๊ตฌ Git ์ด ๋งŒ๋“ค์–ด์ง. 
  • ์‚ฌ์šฉ์ž ์นœํ™”์ ์ด๊ณ , ๋งค์šฐ ๋น ๋ฆ„. 
  • ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์—๋„ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ. 
  • ๋™์‹œ๋‹ค๋ฐœ์ ์ธ ๋ธŒ๋žœ์น˜์—๋„ ๋„๋–ก์—†๋Š” ์Šˆํผ ์šธํŠธ๋ผ ๋ธŒ๋žœ์นญ ์‹œ์Šคํ…œ(์ž์นญ) 

 

Git ์˜ ๋ชฉํ‘œ 

  1. ๋น ๋ฅธ ์†๋„
  2. ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ
  3. ๋น„์„ ํ˜•์ ์ธ ๊ฐœ๋ฐœ(์ˆ˜์ฒœ ๊ฐœ์˜ ๋™์‹œ ๋‹ค๋ฐœ์ ์ธ ๋ธŒ๋žœ์น˜)
  4. ์™„๋ฒฝํ•œ ๋ถ„์‚ฐ
  5. Linux ์ปค๋„ ๊ฐ™์€ ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์—๋„ ์œ ์šฉํ•  ๊ฒƒ(์†๋„๋‚˜ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ๋ฉด์—์„œ)

 

Git ๊ณผ ๊ธฐ์กด ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS) ์˜ ์ฐจ์ด 

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

๊ธฐ์กด ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(VCS) vs Git : VCS ๋Š” ๋ณ€๊ฒฝ ์—†์—ˆ๋˜ ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋Š” ๊ธฐ๋ก ์•ˆํ•จ, Git ์˜ ๊ฒฝ์šฐ ๊ทธ ์ˆœ๊ฐ„์˜ ์ƒํƒœ๋ฅผ ์ „๋ถ€ ์Šค๋ƒ…์ƒท. ๋‚จ๊น€.

 

Git ํŠน์ง• 

  • ๊ฑฐ์˜ ๋ชจ๋“  ๋ช…๋ น์„ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋กœ์ปฌ ๋””์Šคํฌ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ช…๋ น์ด ์ˆœ์‹๊ฐ„์— ์‹คํ–‰๋จ. 
  • ๊ธฐ์กด ์ค‘์•™์ง‘์ค‘์‹๊ณผ ๋‹ค๋ฅด๊ฒŒ, git ์€ ๋ถ„์‚ฐํ˜•(Distributed)์œผ๋กœ ๋ชจ๋“  ์ž‘์—…์ด ๋กœ์ปฌ์—์„œ ๊ฐ€๋Šฅํ•จ. 
  • git clone์„ ํ•˜๋Š” ์ˆœ๊ฐ„, ์ค‘์•™ ์„œ๋ฒ„(์˜ˆ: GitHub)์— ์žˆ๋˜ '๋ชจ๋“  ๋ฒ„์ „ ํžˆ์Šคํ† ๋ฆฌ(์Šค๋ƒ…์ƒท์˜ ์ŠคํŠธ๋ฆผ)'๋ฅผ ํ†ต์งธ๋กœ ๋‚ด ์ปดํ“จํ„ฐ์— ๋ณต์ œ
  • ์ž‘๋™ ๋ฐฉ์‹
    • ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ณด๋ ค๋ฉด? → (๋กœ์ปฌ) → ๋‚ด ์ปดํ“จํ„ฐ์— ์ €์žฅ๋œ DB๋ฅผ ์ฆ‰์‹œ ์กฐํšŒ
    • ์ปค๋ฐ‹ํ•˜๋ ค๋ฉด? → (๋กœ์ปฌ) → ๋‚ด ์ปดํ“จํ„ฐ ์ €์žฅ์†Œ์— ์ฆ‰์‹œ ์ €์žฅ
    • ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ๋ ค๋ฉด? → (๋กœ์ปฌ) → ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์ฆ‰์‹œ ์ƒ์„ฑ
  • Git ์˜ ๋ฌด๊ฒฐ์„ฑ : ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์ „์— ํ•ญ์ƒ ์ฒดํฌ์„ฌ์„ ๊ตฌํ•˜๊ณ , ์ฒดํฌ์„ฌ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•จ. 
  • ์ฒดํฌ์„ฌ์ด๋ž€? SHA-1 ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉ, 40์ž ๊ธธ์ด์˜ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด. Git ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ๋‹จ์œ„์ด์ž Git ์˜ ๊ธฐ๋ณธ ์ฒ ํ•™.
  • Git์€ ๋ชจ๋“  ๊ฒƒ์„ ํ•ด์‹œ๋กœ ์‹๋ณ„. 
  • Git ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์—ญํ• ๋งŒ ํ•œ๋‹ค. 
  • ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋ฐฉ๋ฒ• ์—†์Œ. 

 

Git ์˜ ์„ธ๊ฐ€์ง€ ์ƒํƒœ 

1. Committed : ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ. 
2. Modified : ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ์•„์ง ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ๋งํ•œ๋‹ค. 
3. Staged : ํ˜„์žฌ ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ๊ณง ์ปค๋ฐ‹ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ‘œ์‹œํ•œ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 

 

Git์˜ 3๋Œ€ ํ•ต์‹ฌ ์š”์†Œ - Working tree, Staging Area, Git Directory (Git์˜ํ•ต์‹ฌ)

1. Git Directory : Git ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์™€ ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ ์˜๋ฏธ 

  • ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋ฅผ clone ํ•  ๋•Œ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ "Git ๋””๋ ‰ํ† ๋ฆฌ" 
  • ์ด๋ฏธ ์ปค๋ฐ‹๋œ ์ƒํƒœ์ด๋ฉฐ, ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  Staging area ์— ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด "staged" ์ƒํƒœ๊ฐ€ ๋จ. ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ๋„ ์•„์ง ์ถ”๊ฐ€ ์•ˆํ–ˆ๋‹ค๋ฉด, Modified 

2. Working Tree 

  • ํ”„๋กœ์ ํŠธ์˜ ํŠน์ • ๋ฒ„์ „์„ Check out ํ•œ ๊ฒƒ. 
  • ์ฆ‰,  git check out [3์ผ์ „ ์ปค๋ฐ‹ ์ด๋ฆ„] ํ•˜๋ฉด, llm_project ๋‚ด ํŒŒ์ผ์ด 3์ผ ์ „ ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ. 
  • ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋””์Šคํฌ์— ์žˆ์œผ๋ฉฐ, ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์••์ถ•๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ 3์ผ ์ „ ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€ working tree ๋ฅผ ๋งŒ๋“ ๋‹ค.
  • Git ์ด ํ•˜๋Š” ์ผ
    • 1) ์›Œํ‚น ํŠธ๋ฆฌ์—์„œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ๋‹ค 
    • 2) Staging Area์— ํŒŒ์ผ์„ Stage ํ•ด์„œ ์ปค๋ฐ‹ํ•  ์Šค๋ƒ…์ƒท์„ ๋งŒ๋“ ๋‹ค. ๋ชจ๋“  ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์„ ํƒํ•˜์—ฌ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.(add ๋ฒ”์œ„ ์„ ์ •)
    • 3) Staging Area์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ์ปค๋ฐ‹ํ•ด์„œ Git ๋””๋ ‰ํ† ๋ฆฌ์— ์˜๊ตฌ์ ์ธ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

3. Staging Area 

  • ๋‹จ์ˆœํ•œ ํŒŒ์ผ์ด๊ณ , ๊ณง ์ปค๋ฐ‹ํ•  ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅ. ์ปค๋ฐ‹ ์ „ ํ•„์ˆ˜. 
  • Git ์—์„œ๋Š” ๊ธฐ์ˆ ์šฉ์–ด๋กœ index ๋ผ๊ณ  ํ•˜์ง€๋งŒ, “Staging Area” ๋ผ๋Š” ์šฉ์–ด๋ฅผ ์จ๋„ ๋จ. 

 

Git ์‚ฌ์šฉํ•˜๊ธฐ 

์ด์ œ ๋ง‰ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•ด๋ณด์ž 

  • jenna/llm_project 

 

1. Git ์„ค์น˜ ํ•˜๊ธฐ 

  • ์šฐ๋ถ„ํˆฌ์— ์„ค์น˜ํ•˜๊ธฐ. 
$ sudo apt install git-all

 

์„ค์น˜ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋งํฌ์— 

 

Git - Git ์„ค์น˜

์ด ์ฑ…์€ Git 2.0.0 ๋ฒ„์ „์„ ๊ธฐ์ค€์œผ๋กœ ์ผ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋ช…๋ น์–ด๋Š” ๊ทธ ์ด์ „ ๋ฒ„์ „์—์„œ๋„ ์ž˜ ๋™์ž‘ํ•˜์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์€ ์•„์˜ˆ ์—†๊ฑฐ๋‚˜ ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. Git์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์€ ์ •๋ง ํ›Œ๋ฅญํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2.0

git-scm.com

 

2.  Git ์ตœ์ดˆ ์„ค์ •. 

  • ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋ฅผ master ์—์„œ main ์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ 
git branch -m main #๋‚ด ๋กœ์ปฌ(์„œ๋ฒ„) ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ main์œผ๋กœ ๋ฐ”๊พธ๊ธฐ. ๋ฐ”๊พธ๋ผ๊ณ  ํžŒํŠธ ๋œธ 
git config --global init.defaultBranch main #๋‹ค์Œ๋ถ€ํ„ฐ git init์„ ํ•  ๋• ํžŒํŠธ ์—†์ด ๊น”๋”ํ•˜๊ฒŒ main ๋ธŒ๋žœ์น˜๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ƒ์„ฑ

 

  • ์‚ฌ์šฉ์ž ์„ค์ • (Git ๋„์žฅ ๋งŒ๋“ค๊ธฐ)
git config --global user.name "Your Name"
git config --global user.email "your@email.com"

#์„ค์ •ํ•œ ๋‚ด์šฉ ํ™•์ธ
git config --global --list

 

3. git init

  • jenna/llm_project ๋กœ ์ด๋™ํ•œ ๋’ค 
jenna/llm_project$ git init
  • ์•„์ง ์•„๋ฌด๊ฒƒ๋„ ์ €์žฅํ•œ ๊ฒƒ์ด ์•„๋‹˜. 
  • llm_project ํด๋”์— 'Git ๊ด€๋ฆฌ์šฉ ๋นˆ ๋…ธํŠธ(.git)'๋ฅผ ์ค€๋น„ํ•œ ์ƒํƒœ. 

 

4. ์ €์žฅ (Commit) ํ•ด๋ณด๊ธฐ 

  • staging : "๋ญ˜ ์ €์žฅํ• ์ง€ ์„ ํƒ" -> ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „ ํ•„์ˆ˜ 
#๊ธฐ๋กํ•  ๋Œ€์ƒ์„ ๊ณจ๋ผ์„œ git add ํ•˜๊ธฐ. 
#์ตœ์ดˆ ๊ธฐ๋ก์ด๋ฏ€๋กœ llm_project ์ „๋ถ€ add ํ•˜๊ธฐ.
git add .

 

  • commit : "์‹ค์ œ ์ €์žฅ"
git commit -m "Initial commit: llm_project ์ฒซ ๋ฐฑ์—…"
  • - m : message ์˜๋ฏธ์˜ ํ”Œ๋ž˜๊ทธ(flag) 
  • ์ž์ฃผ ์“ฐ๋Š” ํด๋ž˜๊ทธ 
    • -a : all์˜ ์•ฝ์ž. add ํ–ˆ๋˜ ํŒŒ์ผ์— ํ•œํ•ด์„œ add+commit ์„ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•ด์คŒ. 
    • --amend : "์ˆ˜์ •ํ•˜๋‹ค" ๋ผ๋Š” ๋œป. ๋ฐฉ๊ธˆ ์ „ ์ปค๋ฐ‹ ์ˆ˜์ • ๋ช…๋ น. ๋ฐฉ๊ธˆ ํ•œ ์ปค๋ฐ‹์„ ๋ฎ์–ด์“ฐ๋ฉด์„œ '์ƒˆ๋กœ์šด' ์ปค๋ฐ‹์œผ๋กœ ์ˆ˜์ •ํ•ด์คŒ. 
    • ์ด์™ธ์˜ ํ”Œ๋ž˜๊ทธ๋Š” " git commit --help" ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ. 

 

5. ๊นƒํ—ˆ๋ธŒ ์—ฐ๊ฒฐ 

  • ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์ค‘๊ฐ„์ค‘๊ฐ„ GitHub ์— ๋ฐฑ์—…ํ•˜๊ธฐ ์œ„ํ•ด private repository ๋งŒ๋“ค๊ณ  push ํ•˜๊ธฐ(๊นƒํ—ˆ๋ธŒ๋กœ ์ „์†ก) 
  • ๊นƒํ—ˆ๋ธŒ์— private ๋ ˆํฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์คŒ (read me ๋“ฑ ์„ค์ •๊ฐ’์€ ์ „๋ถ€ off)

#๊นƒํ—ˆ๋ธŒ ์ฃผ์†Œ ๋“ฑ๋ก - remote 
git remote add origin "https://github.com/[๊ณ„์ •์ด๋ฆ„]/[๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ ์ด๋ฆ„].git"

# ๊นƒํ—ˆ๋ธŒ๋กœ ์ „์†ก 
git push -u origin main
	#push : ์ „์†กํ•ด๋ผ
	#origin : ๋ณ„๋ช…์ด 'origin'์ธ ์ฃผ์†Œ(GitHub)๋กœ
	#main : ๋‚ด main ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋‚ด์šฉ์„

 

 

๊นƒ Git vs ๊นƒํ—ˆ๋ธŒ GitHub ์ฐจ์ด 

Git 

  • ์ปดํ“จํ„ฐ์— ์„ค์น˜ํ•˜๋Š” "๋ฒ„์ „ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ" ์ž์ฒด 
  • ์ฝ”๋“œ๋ฅผ ์ €์žฅ(commit) ํ•˜๊ณ , ๊ณผ๊ฑฐ ์ฝ”๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š”(check out)๋“ฑ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ. 
  • ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์—†์ด ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ๋„ ๋Œ์•„๊ฐ€๋Š” ๋„๊ตฌ์ž„.

 

GitHub

  • Git ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋กœ๋“œ(push) ํ•ด์„œ, ๋ฐฑ์—…ํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ์›น์‚ฌ์ดํŠธ ์„œ๋น„์Šค 
  • Git ์œผ๋กœ ๋งŒ๋“  ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์ธํ„ฐ๋„ท ์ƒ์— ์˜ฌ๋ ค๋‘๋Š” ๊ณต๊ฐ„. 
  • ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๊ด€, ํ˜‘์—… ๋“ฑ ๊ฐ€๋Šฅ 

 

์ฐธ์กฐ 

  • Git 
 

Git - ๋ฒ„์ „ ๊ด€๋ฆฌ๋ž€?

1.1 ์‹œ์ž‘ํ•˜๊ธฐ - ๋ฒ„์ „ ๊ด€๋ฆฌ๋ž€? ์ด ์žฅ์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์€ Git์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ํ•„์š”ํ•œ ๋‚ด์šฉ์ด๋‹ค. ๋จผ์ € ๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ์— ๋Œ€ํ•œ ์ดํ•ด์™€ Git์„ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ Git ์„œ๋ฒ„๋ฅผ ์„ค

git-scm.com

 

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[260121] PostgreSQL ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ข…๋ฅ˜  (0) 2026.01.21
[260115] REST API ์™€ ๋ฌด์ƒํƒœ์„ฑ(state less)  (0) 2026.01.15
[260115] HTTP ๋ž€ (http ์ธ์ฆ, http ์‘๋‹ต ์ฝ”๋“œ ๋“ฑ)  (0) 2026.01.15
[260113] ํŠธ๋žœ์ ์…˜์ด๋ž€? (Transaction)  (0) 2026.01.13
'ํ”„๋กœ๊ทธ๋ž˜๋ฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [260121] PostgreSQL ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ข…๋ฅ˜
  • [260115] REST API ์™€ ๋ฌด์ƒํƒœ์„ฑ(state less)
  • [260115] HTTP ๋ž€ (http ์ธ์ฆ, http ์‘๋‹ต ์ฝ”๋“œ ๋“ฑ)
  • [260113] ํŠธ๋žœ์ ์…˜์ด๋ž€? (Transaction)
jennnnna
jennnnna
  • jennnnna
    ๐Ÿ’ป๐Ÿ€Jennna's BLOG
    jennnnna
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (75) N
      • ์ปดํ“จํ„ฐ (1)
        • Operating system ์šด์˜์ฒด์ œ (8)
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ (5)
        • JAVA (6)
        • PHP (1)
        • Android (7)
        • Apache (1)
        • Python (0)
      • ๊ณต๋ถ€ (15)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๊ณต๋ถ€๊ธฐ๋ก (12)
        • TIL (3)
      • AI (3) N
      • TTS (1)
      • LLM (2)
      • RAG (1)
      • ์–ดํ•™ (5)
        • English (5)
        • Japanese (ๆ—ฅๆœฌ่ชž) (0)
      • ๊ธ€์“ฐ๊ธฐ (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ž๋ฐ”๊ณต์‹๋ฌธ์„œ
    cs๊ณต๋ถ€
    ๋ฌต์€์ง€์ฐธ์น˜๊น€๋ฐฅ
    ์˜ค๋ธ”์™„
    ์žฅ์ธํ•œ๊ณผ
    ์ •์ฒ˜๊ธฐ
    ์šด์˜์ฒด์ œ๊ณต๋ถ€
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ์ž๋ฐ”๋…ํ•™
    ์•ˆ๋“œ๋กœ์ด๋“œ
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌํ•„๊ธฐ
    CS์ง€์‹
    ๋น„์ „๊ณต์žcs๊ณต๋ถ€
    ๋น„์ „๊ณต์ž๊ฐœ๋ฐœ์ž
    ์šด์˜์ฒด์ œ
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    ์•ˆ๋“œ๋กœ์ด๋“œ๊ฐœ๋ฐœ
    ์ž๋ฐ”๊ณต๋ถ€
    ์ž๋ฐ”๊ธฐ์ดˆ
    ์นดํŽ˜์•Œ๋ฐ”
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.5
jennnnna
๋ฒ„์ „ ๊ด€๋ฆฌ๋ž€? Git ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ, Git๊ณผ GitHub ์ฐจ์ด
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”