๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ๋ด๊ฐ ์ธ์ ์ด๋ค ์ฝ๋๋ฅผ ์์ ํ๋์ง๋ฅผ ์์์ผํ๋ ์ํฉ๋ ์๊ณ ํ์๋ค๊ณผ ์ฝ๋๋ฅผ ๊ณต์ ํ๊ณ ํฉ์ณ์ผํ๋ ์ํฉ ๋ฑ ์ฌ๋ฌ ๊ณ ๋ฏผ ์ฌํญ๋ค์ด ์กด์ฌํ๊ฒ๋๋ค.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ฃผ๋ ๋๊ตฌ์ธ Git์ ๋ํด ์์๋ณด์
Git์ด๋?
Git์ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (Distributed Version Control System, DVCS)๋ก ๋จ์ํ ํ์ผ์ ์ ์ฅํ๋ ๊ฒ์ ๋์ด, ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฐ์์ผ๋ก ๊ธฐ๋กํ๊ณ ํ์ํ ๋ ํน์ ์์ ์ผ๋ก ๋๋๋ฆด ์ ์๊ฒ ํด์ค๋ค.
๋ฒ์ ๊ด๋ฆฌ์์คํ ์์ ๋ถ์ '๋ถ์ฐ'์ด๋ผ๋ ๋ง์ฒ๋ผ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์ ์ฒด ํ์คํ ๋ฆฌ๋ฅผ ๋ก์ปฌ์ ๋ณต์ฌํ์ฌ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ค์ ์๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋ณต๊ตฌ๊ฐ ์ฝ๊ณ ์คํ๋ผ์ธ ์์ ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ๋ ์๋ค.
Git์ ์์ญ
Git์ ์์ ํ๋ฆ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ 3๊ฐ์ ์์ญ์ผ๋ก ๋๋๋ค.
์์ ๋๋ ํ ๋ฆฌ(Working Directory)
๋ด๊ฐ ์ค์ ๋ก ์ฝ๋๋ฅผ ์์ ํ๊ณ ์๋ ๋ด ์ปดํจํฐ์ ๋๋ ํ ๋ฆฌ(์ค์ ํด๋)์ด๋ค.
=> ํ์ผ์ ์์ฑ, ์์ , ์ญ์ ํ๋ฉด ์ด ์์ญ์์ ๋ณํ๊ฐ ์ผ์ด๋จ
(Git์ด ํ์ฌ ํ๋ก์ ํธ์ ํ์คํ ๋ฆฌ๋ฅผ ์ ์ฅํด๋๋ ๊ด๋ฆฌ ์์คํ ์ธ .gitํด๋๋ฅผ ์ ์ธํ ์ค์ ์์ ๊ณต๊ฐ์ผ๋ก ์๊ฐํ๋ฉด๋จ)
์คํ ์ด์ง ์์ญ(Staging Area / Index)
์ปค๋ฐ(Commit)์ผ๋ก ์ ์ฅํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฏธ๋ฆฌ ์ค๋นํ๋ ์ฅ์์ด๋ค.
=> git add ๋ช ๋ น์ด๋ฅผ ํตํด ์์ ๋๋ ํ ๋ฆฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ฌ๊ธฐ๋ก ์ฌ๋ฆผ
๋ก์ปฌ ์ ์ฅ์(Local Repository)
์คํ ์ด์ง ์์ญ์์ ์ค๋น๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ์๊ตฌ ์ ์ฅ(์ปค๋ฐ) ํ๋ ๊ณณ์ด๋ค.
=> ์ด๊ณณ์ ์ ์ฅ๋ ๋ด์ฉ์ ์์ ์ ์ปดํจํฐ์๋ง ์์
(git push ๋ช
๋ น์ด๋ฅผ ํตํด ์๊ฒฉ ์ ์ฅ์๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด๋ด๊ธฐ ์ ๊น์ง๋ ๋ค๋ฅธ ์ฌ๋๊ณผ ๊ณต์ ๋์ง ์๋ ๋๋ง์ ๊ธฐ๋ก ์ ์ฅ์๋ก ์๊ฐํ๋ฉด๋จ)
Git์ ์ํ
Git ์์ญ์ ๋ฐ๋ผ ํ์ผ ํ๋ํ๋๋ ๊ฐ๊ฐ ๋ค ๊ฐ์ง ์ํ ์ค ํ๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
ํฌ๊ฒ ์ถ์ (Tracked)์ ๋น์ถ์ (Untracked) ์ํ๋ก ๋๋ ์ง๊ณ Tracked ์ํ๋ ๋ค์ Unmodified, Modified, Staged๋ก ๊ตฌ๋ถ๋๋ค.
(์ฆ, Untracked, Tracked(Unmodified, Modified, Staged) ๋ค ๊ฐ์ง ์ํ๊ฐ ์กด์ฌ)
Untracked
Git์ด ์ถ์ ํ์ง ์๋ ์๋ก์ด ํ์ผ
(ํ ๋ฒ๋ git add ๋ ์ ์ด ์๋ ํ์ผ๋ก, Git์ ๊ด๋ฆฌ ๋์์ด ์๋)
Tracked
Git์ด ๋ณ๊ฒฝ ์ด๋ ฅ์ ์๊ณ ์๋ ํ์ผ
Unmodified
์ต๊ทผ ์ปค๋ฐ๊ณผ ๋น๊ตํ์ ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ ์ํ
(์ปค๋ฐ ์ดํ ์๋ฌด ์์ ๋ ํ์ง ์์ ์ํ๋ก ํํ Commited ์ํ๋ผ๊ณ ๋ ํํ๋จ)
Modified
ํ์ผ์ด ์์ ๋์์ง๋ง ์์ง Staging Area์ ์ฌ๋ฆฌ์ง ์์ ์ํ
(๋ง์ง๋ง ์ปค๋ฐ ์ดํ ๋ด์ฉ์ด ๋ฐ๋์์ง๋ง ์์ง ์ปค๋ฐ ๋์์ ์๋)
Staged
์์ ๋ ํ์ผ์ ์ปค๋ฐ ๋์์ผ๋ก ํ์ ํ ์ํ
(git add๋ฅผ ํตํด Staging Area์ ์ฌ๋ผ๊ฐ ์ํ๋ก, ๋ค์ git commit์ ํฌํจ๋ ๋ณ๊ฒฝ ์ฌํญ)
GitHub๋?
๊ฐ๋ฐ์๋ผ๋ฉด GitHub๋ฅผ ๋ชจ๋ฅผ ์ ์๋๋ฐ
GitHub๋ ์ด๋ฐ Git ์ ์ฅ์๋ฅผ ์ํ ์ค์ ์๋ฒ๋ฅผ ๋์ ์ด์, ๊ด๋ฆฌํด์ฃผ๋ ์๋น์ค์ด๋ค.
GitHub์ ์ฅ์ ์ผ๋ก๋
1. ์ ์ฅ์(Remote Repository)๋ฅผ ์ ๊ณตํ์ฌ ๋ด ๋ก์ปฌ ์ ์ฅ์๋ฅผ GitHub์ ์ฌ๋ ค ๋ฐฑ์ ํ๊ณ ๊ณต์ ํ ์ ์๋ค.
2. Pull Request(PR)๋ฅผ ํตํด ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ , Issue๋ฅผ ํตํด ๋ฒ๊ทธ๋ ํ ์ผ์ ๊ด๋ฆฌํ๋ ๋ฑ์ ํ์ ์ ์ ์ฉํ ๊ธฐ๋ฅ๋ค์ด ์ ๊ณต๋๋ค.
3. ์ ์ธ๊ณ ์ ๋ง์ ๊ฐ๋ฐ์๋ค์ ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ๋ชจ์ฌ์๋ ์ปค๋ฎค๋ํฐ์ ์ญํ ์ ํ๋ค.
๋ฑ์ด ์๋ค.
Git ์ฌ์ฉ ํ๋ฆ
๋ค๋ฅธ ํ์๊ณผ์ ํ์ ์ ์ํด ๋ด ์ฝ๋๊ฐ ์ด๋ป๊ฒ GitHub(์๊ฒฉ ์ ์ฅ์)๊น์ง ํ๋ฌ๊ฐ๋์ง ๋ช ๋ น์ด์ ํจ๊ป ์ดํด๋ณด์
1. ์์ ์์
git init ๋ช ๋ น์ด๋ฅผ ํตํด ์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ฑฐ๋ git clone ๋ช ๋ น์ด๋ฅผ ํตํด ๊ธฐ์กด ์๊ฒฉ ์ ์ฅ์์ ํ๋ก์ ํธ๋ฅผ ๋ด ๋ก์ปฌ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.
2. ๋ณ๊ฒฝ ์ฌํญ ์๊ธฐ [Working Directory -> Staging Area]
git add ๋ช ๋ น์ด๋ฅผ ํตํด ์์ ํ ํ์ผ ์ค ์ด๋ฒ ๋ฒ์ (Commit)์ ํฌํจํ ํ์ผ๋ค์ ๊ณจ๋ผ ๋ด๋๋ค.
3. ๋ก์ปฌ์ ๊ธฐ๋กํ๊ธฐ [Staging Area -> Local Repository]
git commit ๋ช ๋ น์ด๋ฅผ ํตํด Staging Area์ ์ฌ๋ผ์จ ํ์ผ๋ค์ ํ๋์ ์๋ฏธ ์๋ ๋จ์(๋ฒ์ )๋ก ๋ฌถ์ด ๋ก์ปฌ ์ ์ฅ์์ ์๊ตฌ์ ์ผ๋ก ๊ธฐ๋กํ๋ค.
4. ์๊ฒฉ์ผ๋ก ์ ์กํ๊ธฐ [Local Repository -> Remote Repository]
git push ๋ช ๋ น์ด๋ฅผ ํตํด ๋ด ์ปดํจํฐ์ ๊ธฐ๋ก๋ ์ปค๋ฐ๋ค์ GitHub์ ๊ฐ์ ์๊ฒฉ ์ ์ฅ์์ ์ ๋ก๋ํ๋ค.
=> ์ด๋ ๊ฒ ํ๋ฉด ์ด์ ํ์๋ค์ด ๋ด ์ฝ๋๋ฅผ ๋ณผ ์ ์๊ฒ๋จ
5. ๋ค๋ฅธ ํ์ ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ [Remote Repository -> Local Repository]
๋ง์ฝ ์๊ฒฉ ์ ์ฅ์์ ์๋ก ์ ๋ฐ์ดํธ๋ ๋ค๋ฅธ ํ์์ ์ฝ๋๋ฅผ ๋ด ๋ก์ปฌ๋ก ๊ฐ์ ธ์์ ํฉ์น๊ณ (๋ฐ์ํ๊ณ ) ์์ ์ ์ด์ด๊ฐ์ผ ํ๋ค๋ฉด
git pull ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด์ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ๋ด ๋ก์ปฌ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.
'๐ป CS > Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Git์ re- ๋ช ๋ น์ด ์ ๋ฆฌ (revert, reset, restore, rebase) (2) | 2025.12.27 |
|---|