| title | title-ko | page_group | page_order | comments |
|---|---|---|---|---|
Introduction |
์๊ฐ |
rysgit |
0 |
true |
Git์ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ์ ๊ด๋ฆฌํ๋ ์์ ์ ์ํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (VCS, Version control system)์ด๋ค. ์ํํธ์จ์ด ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ฐ์ํ๋ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ๊ด๋ฆฌํด์ฃผ๋ฉฐ, ์ด๋ฌํ ๋ณ๊ฒฝ๋ค์ด ์ด๋์๋ถํฐ ๋ฐ์ํ๋์ง ํ์ ํด ๋ณผ ์๋ ์๋ค. Git์ ํฐ ํ๋ก์ ํธ๋ค์ ๊ด๋ฆฌํ๋ ๋ฐ ์์ด ํ์์ ์ธ ๋๊ตฌ์ด๋ฉฐ, ๋ํ ๊ฐ์ธ์ ์ธ ์ ๋ฌด๋ฐฉ์(workflow)์๋ ๋ง์ ๋ณํ๋ฅผ ์ค ์ ์๋ค.
Git์ ํต์ฌ ์ฒ ํ์ ๋ํด ์ข ๋ ์์ธํ ์๊ธฐํ ๊ฒ์ด๋ค. ์ด์ ์์, ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๋ฐ์ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์ดํด๋ณด๋๋ก ํ์.
๊ฐ์ ๊ด๋ฆฌ ์ํํธ์จ์ด๊ฐ ๋ฑ์ฅํ๊ธฐ ์ ์๋ ์ค์ง ํ์ผ๊ณผ ํด๋๋ง ์์๋ค.
ํ๋ก์ ํธ์ ๊ฐ์ ์ฌํญ์ ๊ธฐ๋กํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ํ๋ก์ ํธ ํด๋๋ฅผ ํต์ฑ๋ก ๋ณต์ฌํด์ ์๋ก์ด ์ด๋ฆ์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ด์๋ค.
์ฌ๋ฌ๋ถ์ด ์ง๊ธ๊ป my-term-paper-2.doc ๋ผ๋ ์์ผ๋ก ์ผ๋ง๋ ๋ง์ โ๋ฐฑ์
โ์ ์ ์ฅํ๋์ง ํ๋ฒ ์๊ฐํด ๋ณด์.
์ด๊ฒ์ ๋ฒ์ ๊ด๋ฆฌ์ ๋งค์ฐ ๋จ์ํ ํํ์ด๋ค.
ํ์ผ๊ณผ ํด๋๋ฅผ ์ด์ฉํ ๊ฐ์ ๊ด๋ฆฌ
ํ์ง๋ง, ํด๋์์ ํด๋๋ก ํ์ผ์ ๋ณต์ฌํ๋ ๊ฒ์ด ์ํํธ์จ์ด ๊ฐ๋ฐ์์๊ฒ ์ด๋ค ์ฌ์์ ๊ฐ์ ธ์ฌ ์ ์๋์ง ๋ณด์ฌ์ฃผ๊ธฐ๋ ์ฝ๋ค. ๋ง์ฝ ํด๋์ ์ด๋ฆ์ ์๋ชป ๋ถ์ด๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ์๋๋ฉด ๋ฌธ์ ๊ฐ ์๋ ํ์ผ์ ๋ฎ์ด์ฐ๊ธฐ ํ๋ค๋ฉด ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊น? ์ฌ์ง์ด ์์ฃผ ์ค์ํ ์ฝ๋ ์ผ๋ถ๋ฅผ ๋ ๋ ค๋ฒ๋ ธ๋ค๋ ์ฌ์ค์ ์ด๋ป๊ฒ ์ ์ ์์๊น? ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ค์๊ฒ ์ข ๋ ์ ๋ขฐํ ๋งํ ๋ฌด์ธ๊ฐ๊ฐ ํ์ํ๋ค๋ ์ฌ์ค์ ๊นจ๋ซ๋๋ฐ๊น์ง ๊ทธ๋ฆฌ ์ค๋ ๊ฑธ๋ฆฌ์ง ์์๋ค.
๊ทธ๋์, ๊ฐ๋ฐ์๋ค์ ํ์ผ ๊ฐ์ ์ฌํญ์ ๊ด๋ฆฌํ๋ ์ ์ฉ ์ ํธ๋ฆฌํฐ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ธฐ ์์ํ๋ค. ์ด์ ๋ฒ์ (old version)๋ค์ ๋ ๋ฆฝ์ ์ธ ํ์ผ๋ก ์ ์งํ๋ ๋์ , ์๋ก์ด VCS๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ผ๋ค์ ์ ์ฅํ๋ค. ์ด์ ๋ฒ์ ์ ๋ํ ์กฐํ๊ฐ ํ์ํ ๊ฒฝ์ฐ ํ์ผ์ ์ง์ ์ ๊ทผํ๋ ๋์ VCS๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ฐ ์์ผ๋ก, ์ฃผ์ด์ง ์์ ์ ๋จ ํ๋์ โ์ฒดํฌ ์์๋(checked out)โ ํ๋ก์ ํธ ๋ณต์ฌ๋ณธ์ ๊ฐ์ง ์ ์์๊ณ , ๊ฐ์ ์ฌํญ์ด ๋ค์์ด๊ฑฐ๋ ๋ถ์ค๋ ๊ฐ๋ฅ์ฑ์ ์ ๊ฑฐํด ์ฃผ์๋ค.
๋ก์ปฌ ๋ฒ์ ๊ด๋ฆฌ
๋น์์๋ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฐ์์ ๋ก์ปฌ ์ปดํจํฐ(Local Computer)์์ ๊ฐ๋ฅํ๋ค. ์ฆ, ์ฌ๋ฌ ํ๋ก๊ทธ๋๋จธ๋ค๋ผ๋ฆฌ ์ฝ๋๋ฅผ ํจ์จ์ ์ผ๋ก ๊ณต์ ํ ๋ฐฉ๋ฒ์ ์์๋ค.
์ค์์ง์ค์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (CVCS, Centeralized VCS)๋ฅผ ์ดํด๋ณด์. ๊ฐ๋ฐ์์ ํ๋๋์คํฌ์ ํ๋ก์ ํธ ํ์คํ ๋ฆฌ๋ฅผ ์ ์ฅํ๋ ๋์ ์, ์๋ก์ด CVCS ํ๋ก๊ทธ๋จ์ ์๋ฒ์ ๋ชจ๋ ๊ฒ์ ์ ์ฅํ๋ค. ๊ฐ๋ฐ์๋ค์ ๋คํธ์ํฌ๋ฅผ ํตํด ํ์ผ์ ์ฒดํฌ์์ํ๊ณ ํ๋ก์ ํธ์ ๋ค์ ์ ์ฅํ๋ค. ์ด ์ค์ ์ ์ฌ๋ฌ ๊ฐ๋ฐ์๋ค์ด ํ๋ก์ ํธ์ ํ์ ํ ์ ์๋๋ก ํ๋์ ์ง์ ์ ์ ์ ๊ณตํ์๋ค.
์ค์์ง์ค์ ๋ฒ์ ๊ด๋ฆฌ
๋ก์ปฌ VCS์ ๋นํด ํฐ ๋ฐ์ ์ด๊ธด ํ์ง๋ง, ์ค์์ง์ค์ ์์คํ ์ ๋ค์์ ์๋ก์ด ๋ฌธ์ ์ ์ ์ ์ํ๋ค: ์ฌ์ฉ์ ๋ค์๊ฐ ๋์์ ๊ฐ์ ํ์ผ์ ์ ๊ทผํ์ฌ ์์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น? ๋ ์ฌ๋์ด ๊ฐ์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ ์ค์ ์๋ฒ์ commit์ ์๋ํ๋ ค๊ณ ํ๋ ์๋๋ฆฌ์ค๋ฅผ ์์ํด ๋ณด์. ๋๊ตฌ์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์๋์ด์ผ ํ ๊น?
CVCS๋ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์์ ์์ ์ ๋ฌด์ํ์ง(overriding) ๋ชปํ๊ฒ ํจ์ผ๋ก์จ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ๋ง์ฝ ๋ ๋ณ๊ฒฝ์ฌํญ์ด ์ถฉ๋(conflict)ํ๋ฉด, ๋๊ตฐ๊ฐ๊ฐ ์์์ ์ผ๋ก ์ฐจ์ด์ ์ ์ฐพ์ ๋ณํฉ(merge)ํด์ผ ํ๋ค. ์ด ํด๊ฒฐ์ฑ ์ ์๋์ ์ผ๋ก ์ ์ ์ ๋ฐ์ดํธ(์๋์ ์ผ๋ก ์ ์ ์ถฉ๋์ ์๋ฏธ)์ ํ๋ก์ ํธ์๋ ํจ๊ณผ๊ฐ ์์์ผ๋, ๋ค์์ ํ๋์ ์ธ ์ฐธ์ฌ์๋ค์ด ๋งค์ผ ์ฌ๋ฌ ๊ฐ์ ์ ๋ฐ์ดํธ๋ฅผ ์ ์ถํ๋ ํ๋ก์ ํธ์๋ ์ ์ฉํ๊ธฐ ํ๋ ๊ฒ์ผ๋ก ๋๋ฌ๋ฌ๋ค: ๋ชจ๋ ๋ณํฉ ์ถฉ๋(merge conflict)์ ํด๊ฒฐํ๊ณ ์ ์ฒด ๊ฐ๋ฐ ํ์ด ์ฌ์ฉํ ์ ์์ ๋๊น์ง ๊ฐ๋ฐ์ด ์งํ๋ ์ ์์๋ค.
๊ฐ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ๋ค์ ์ธ๋๋ ๋จ์ผ ์ค์์ง์ค์ ์ ์ฅ์์ ๊ฐ๋ ์์ ๋ฒ์ด๋ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ์ ์ฒด ํ๋ก์ ํธ์ ๋ํ ์์ ๋ง์ ๋ก์ปฌ ์ฌ๋ณธ์ ์ ๊ณตํ๋ ๊ฒ์ ํํ๋ ๊ฒ์ผ๋ก ๋ณํ๊ฒ ๋์๋ค. ์ ์ฅ์๊ฐ ๋คํธ์ํฌ์ ๋ถ์ฐ๋ ๊ฒฐ๊ณผ ๊ฐ๋ฐ์ ๊ฐ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ผํ ์ ์๊ฒ ๋์๋ค. ์ด๊ฒ์ ๋ก์ปฌ VCS์ ๋น์ทํ์ง๋ง CVCS์ ์ถฉ๋ ํด๊ฒฐ ๋ฌธ์ ๋ ์ด์ ์ข ๋ ๋์ ํด๊ฒฐ์ฑ ์ ๊ฐ๊ฒ ๋์๋ค.
๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ
์ด์ ๋์ด์ ์ค์ ์ ์ฅ์๊ฐ ์๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ์ฌ์ฉ์๋ ๊ทธ๋ค ์์ ์ ์๋์ ๋ฐ๋ผ ๊ฐ๋ฐํ๊ณ , ๋ก์ปฌ์ ์ ๋ฐ์ดํธ๋ฅผ ์ ์ฅํ ์ ์๊ฒ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์ํฉ์ ๋ฐ๋ผ ์ถฉ๋ ๋ณํฉ์ ๋ฏธ๋ฃฐ ์ ๋ ์์๋ค. ๊ฒ๋ค๊ฐ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (DVCS, Distributed VCS)์ ๋ถ๋ฆฌ๋ ๊ฐ๋ฐ ๋ธ๋์น(branch)๋ค์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋๋ฐ ์ค์ ์ ๋๊ณ ์์ด, ์ฝ๋๋ฅผ ๊ณต์ ํ๊ณ ์ถฉ๋์ ๋ณํฉํ๊ณ , ์๋ก์ด ์์ด๋์ด๋ฅผ ์คํํ๊ธฐ๊ฐ ๋์ฑ ์ฌ์์ก๋ค.
DVCS์ ์ง์ญ์ ์ธ ํน์ฑ์ ๋ ์ด์ ๋คํธ์ํฌ๋ฅผ ํตํด ์์ ์ ์ํํ์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์ ๋์ฑ ๋ ๋น ๋ฅด๊ฒ ํด์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ํ๋ก์ ํธ์ ์์ ํ ์ฌ๋ณธ์ ๊ฐ๊ธฐ ๋๋ฌธ์ ์๋ฒ ๊ณ ์ฅ์ ์ํ, ์ ์ฅ์์ ์์ ํน์ ๋ค๋ฅธ ํํ์ ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ์ฑ์ด CVCS ์ด์ ์์คํ ๋ค๋ณด๋ค ๋์ฑ ๋ฎ์์ก๋ค.
๊ทธ๋์, ์ฐ๋ฆฌ๋ Git์ ๋๋ฌํ๋ค. Git์ ๋ฆฌ๋ ์ค ์ปค๋์ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ผ์ข ์ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๋ค. 2005๋ ์ ๋ฆฌ๋ ์ค ์ปค๋ฎค๋ํฐ๋ 2002๋ ๋ถํฐ ์ฌ์ฉํด ์จ ์์ฉ DVCS์ธ ๋นํธํคํผ(BitKeeper) ์ํํธ์จ์ด์ ๋ํ ๋ฌด๋ฃ ์ฌ์ฉ๊ถ์ ์๊ฒ ๋์๋ค. ์ด์ ๋์ํ์ฌ, ๋ฆฌ๋์ค ํ ๋ฐ์ฆ(Linus Torvalds)๋ ๋์์ผ๋ก ์๋ก์ด ์คํ์์ค DVCS์ ๊ฐ๋ฐ์ ์ฃผ์ฐฝํ๋ค. ์ด๊ฒ์ด Git์ ํ์ ๋ฐฐ๊ฒฝ์ด๋ค.
์ ์ฒด ๋ฆฌ๋ ์ค ์ปค๋์ ์ํ ์์ค์ฝ๋ ๊ด๋ฆฌ์๋ก์, Git์ ๋ค์์ ํฌํจํ๋ ๋ช๊ฐ์ง ๊ณ ์ ํ ์ ์ฝ์กฐ๊ฑด์ ๊ฐ์ง๋ค:
- ์ ๋ขฐ์ฑ (Reliability)
- ๋ํ ํ๋ก์ ํธ์ ํจ์จ์ ์ธ ๊ด๋ฆฌ
- ๋ถ์ฐ ๊ฐ๋ฐ์ ์ํ ์ง์
- ๋น ์ ํ(non-linear) ๊ฐ๋ฐ์ ์ํ ์ง์
๊ทธ ๋น์ ๋ค๋ฅธ DVCS๋ค์ด ์กด์ฌํ์ผ๋ (์๋ฅผ ๋ค๋ฉด, GNU์ Arch ํน์ David Roundy์ Darcs), ์ด๋ ๊ฒ๋ ์ด ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ์ง ๋ชปํ๋ค. ์ด๋ฌํ ๋ชฉํ์ ํ์ ์ด, Git์ ์๋ ๊ฐ ํ๋ฐํ ๊ฐ๋ฐ์ด ์งํ๋์๊ณ , ์ด์ ๋ ์ ๋ฒ ์์ ์ฑ, ๋์ค์ฑ, ์ปค๋ฎค๋ํฐ ์ฐธ์ฌ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์๋ค.
Git์ ๋ช ๋ น ์ค(command-line) ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ผ๋ ์๋ ๊ฐ ๋น์ฃผ์ผ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง ๋ค์ํ ํ๋ก๊ทธ๋จ์ด ์ถ์๋์๋ค. ๊ทธ๋ํฝ์ ์ธ ๋๊ตฌ๋ค์ Git์ ๋ณต์ก์ฑ์ ๊ฐ์ถฐ์ฃผ๊ณ ์ ์ฅ์์ ์ํ๋ฅผ ์๊ฐํํ๋๋ฐ ๋์์ ์ฃผ์ง๋ง ์ฌ์ ํ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ์ ๋ํ ํผํผํ ๊ธฐ์ด ์ง์์ ์๊ตฌํ๋ค. ์ด๋ฅผ ์ผ๋์ ๋๊ณ , ์ฐ๋ฆฌ๋ Git๊ณผ ์ํธ์์ฉํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ธ ๋ช ๋ น ์ค ์ธํฐํ์ด์ค ์ฌ์ฉ์ ๊ณ ์ํ ๊ฒ์ด๋ค.
์์ผ๋ก ๋์ฌ ๋ด์ฉ์์๋ ์ค์ ์๋๋ฆฌ์ค์ ๋ช
๋ น๋ค์ ์ ์ฉํด ๋ณด๋ฉด์ Git์ ํน์ง๋ค์ ์ดํด๋ณผ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ๋จผ์ , ์คํ์ ์ํ Git ์ค์น๊ฐ ํ์ํ๋ค.
Git ๊ณต์ ์น์ฌ์ดํธ์์ ์ง์ํ๋ ๋ชจ๋ ํ๋ซํผ์ ๋ํ ๋ค์ด๋ก๋๊ฐ ๊ฐ๋ฅํ๋ค.
๋์ฐ ์ฌ์ฉ์๋ Git Bash๋ผ๋ ํน๋ณํ ๋ช
๋ น ์(command shell)์ ์ค์นํ ๊ฒ์ด๋ค.
Git ๋ช
๋ น์ ์คํํ๊ธฐ ์ํด ๊ธฐ๋ณธ ๋ช
๋ น ํ๋กฌํํธ ๋์ ์ด ์์ ์ฌ์ฉํด์ผ ํ๋ค. OS X์ ๋ฆฌ๋
์ค ์ฌ์ฉ์๋ ๊ทธ๋ฅ ์์์ Git์ ์ฌ์ฉํ ์ ์๋ค.
์ค์น๊ฐ ์ ๋์๋์ง ํ
์คํธ๋ฅผ ์ํด, ์๋ก์ด ๋ช
๋ น ํ๋กฌํํธ๋ฅผ ์ด๊ณ git โversion์ ์คํํด ๋ณด์.
git version 1.7.10.2 (Apple Git-33)์ ๋น์ทํ๊ฒ ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
๋ณธ *ํํ ๋ฆฌ์ผ(Ryโs Git Tutorial)*์ Git์ ํน์ง๋ค์ ์ค๋ช ํ๊ณ ์ ๋ง๋ค์ด์ก๊ณ , ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ช ๋ น์ ๋ํ ๊ฐ์๋ง์ ์ ๊ณตํ๋ค. ํํ ๋ฆฌ์ผ์ ์ต๋ํ ํ์ฉํ๋ ค๋ฉด ๋์ผ๋ก๋ง ๋ณด์ง๋ง๊ณ ๋ช ๋ น์ด๋ฅผ ์ง์ ์คํํด ๋ณด๋ ๊ฒ์ด ์ค์ํ๋ค. ๊ทธ๋ฌ๋ฉด ์ปดํจํฐ ์์ ์์ ์๋์ง ํ์ธํ๊ณ ์์ํด ๋ณด์!




