Home
>
CS
>
2024
>
๐พ [CS] git์ด๋ ๋ฌด์์ผ๊น์?
CS
๐พ [CS] git์ด๋ ๋ฌด์์ผ๊น์?
-
๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
(Distributed Version Control System)์ผ๋ก, ์์ค ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ํ์
์ ํจ์จ์ ์ผ๋ก ์ง์ํ๊ธฐ ์ํ ๋๊ตฌ์
๋๋ค.
- Git์ ๊ฐ๋ฐ์๊ฐ ์ํํธ์จ์ด ํ๋ก์ ํธ์ ์ด๋ ฅ์ ๊ด๋ฆฌํ๊ณ , ๋์์ ์ฌ๋ฌ ์ฌ๋๊ณผ ํ๋ ฅํ์ฌ ์ฝ๋๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
1๏ธโฃ Git์ ์ฃผ์ ํน์ง.
1๏ธโฃ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ.
- Git์ ์ค์ ์๋ฒ๋ฟ ์๋๋ผ ๊ฐ ์ฌ์ฉ์์ ์ปดํจํฐ์ ์ ์ฒด ์์ค ์ฝ๋ ํ์คํ ๋ฆฌ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ์์ด๋ ๋ก์ปฌ์์ ๋ชจ๋ ๊ธฐ๋ฅ(๋ธ๋์น, ์ปค๋ฏธ์ค ๋ก๊ทธ ํ์ธ ๋ฑ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
2๏ธโฃ ๋น ๋ฅธ ์ฑ๋ฅ.
- Git์ ๋๊ท๋ชจ ํ๋ก์ ํธ์์๋ ๋น ๋ฅด๊ฒ ๋์ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- ๋ก์ปฌ์์ ๋์ํ๋ฏ๋ก, ํ์ผ ๋ณ๊ฒฝ ์ถ์ , ๋ธ๋์น ์์ฑ, ๋ณํฉ ๋ฑ์ด ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค.
3๏ธโฃ ๋ธ๋์น ๊ธฐ๋ฐ ์ํฌํ๋ก์ฐ.
- ๋ธ๋์น๋ฅผ ์ฝ๊ฒ ๋ง๋ค๊ณ , ๋ค์ํ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด๋ ์คํ์ ๋
๋ฆฝ์ ์ผ๋ก ์งํํ ์ ์์ต๋๋ค.
- ๋ธ๋์น๋ฅผ ๋ณํฉ(Merge)ํ๊ฑฐ๋ ์ญ์ ํ ๋๋ ๋งค์ฐ ํจ์จ์ ์
๋๋ค.
4๏ธโฃ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ.
- Git์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ SHA-1 ํด์๊ฐ์ผ๋ก ๊ด๋ฆฌํ์ฌ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ์ฝ๋์ ์ด๋ ฅ๊ณผ ์ํ๊ฐ ์์๋๊ฑฐ๋ ๋ณ์กฐ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
5๏ธโฃ ํจ์จ์ ์ธ ํ์
์ง์.
- ๊ฐ๋ฐ์ ๊ฐ์ ํ์
์์ ๋ฐ์ํ๋ ์ถฉ๋์ ์ต์ํํ๊ณ , ๋์ ์์
์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- pull, push, merge ๋ฑ์ ๋ช
๋ น์ด๋ฅผ ํตํด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณต์ ํ๊ณ ํตํฉํฉ๋๋ค.
2๏ธโฃ Git์ ๊ธฐ๋ณธ ๊ฐ๋
.
1๏ธโฃ Repository(์ ์ฅ์)
- ํ๋ก์ ํธ์ ๊ด๋ จ๋ ๋ชจ๋ ํ์ผ๊ณผ ์ด๋ค์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ์ ์ฅํ๋ ๊ณต๊ฐ.
- ๋ก์ปฌ ์ ์ฅ์(Local Repository)์ ์๊ฒฉ ์ ์ฅ์(Remote Repository)๊ฐ ์์ต๋๋ค.
2๏ธโฃ Commit(์ปค๋ฐ)
- ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ๋กํ๋ ์ค๋
์ท.
- ํ๋ก์ ํธ์ ํน์ ์ํ๋ฅผ ์ ์ฅํ๋ฉฐ, ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ํตํด ๋ณ๊ฒฝ ๋ด์ฉ์ ์ค๋ช
ํฉ๋๋ค.
3๏ธโฃ Branch(๋ธ๋์น)
- ๋
๋ฆฝ์ ์ธ ์์
์ ์ํ ๋ถ๊ธฐ์ .
- ๊ธฐ๋ณธ ๋ธ๋์น๋ main ๋๋ master์ด๋ฉฐ, ์๋ก์ด ๊ธฐ๋ฅ์ด๋ ์คํ์ ์ํด ๋
๋ฆฝ์ ์ธ ๋ธ๋์น๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
4๏ธโฃ Clone(ํด๋ก )
- ์๊ฒฉ ์ ์ฅ์(Remote Repository)๋ฅผ ๋ก์ปฌ(Local)๋ก ๋ณต์ ํ์ฌ ๋์ผํ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ์์
.
5๏ธโฃ Pull(ํ)
- ์๊ฒฉ ์ ์ฅ์(Remote Repository)์ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ค๋ ๋ช
๋ น์ด.
6๏ธโฃ Push(ํธ์)
- ๋ก์ปฌ ์ ์ฅ์(Local Repository)์์ ์์
ํ ๋ด์ฉ์ ์๊ฒฉ ์ ์ฅ์(Remote Repository)์ ์
๋ก๋(Upload)ํ๋ ๋ช
๋ น์ด.
7๏ธโฃ Merge(๋ณํฉ)
- ํ ๋ธ๋์น(Branch)์์ ๋ค๋ฅธ ๋ธ๋์น(Branch)๋ก ๋ณ๊ฒฝ ๋ด์ฉ์ ํตํฉํ๋ ์์
.
8๏ธโฃ Staging Area(์คํ
์ด์ง ์์ญ)
- ์ปค๋ฐ(Commit)ํ๊ธฐ ์ ์ ๋ณ๊ฒฝ๋ ํ์ผ์ ์์๋ก ์ ์ฅํ๋ ๊ณณ.
- git add ๋ช
๋ น์ด๋ก ๋ณ๊ฒฝ ์ฌํญ์ ์คํ
์ด์ง ์์ญ(Staging Area)์ ์ถ๊ฐํฉ๋๋ค.
3๏ธโฃ Git์ ์ฅ์ .
1๏ธโฃ ํจ์จ์ ์ธ ํ์
.
- ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ์์
ํ ์ ์๋๋ก ๋ธ๋์น(Branch)์ ๋ณํฉ(Merge) ๊ธฐ๋ฅ์ ์ ๊ณต.
2๏ธโฃ ํ์คํ ๋ฆฌ ๊ด๋ฆฌ.
- ํ๋ก์ ํธ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฐ์์ผ๋ก ๊ธฐ๋กํ์ฌ ์ธ์ ๋ ์ง ๊ณผ๊ฑฐ ์ํ๋ก ๋๋๋ฆด ์ ์์.
3๏ธโฃ ๋ถ์ฐํ ๊ตฌ์กฐ.
- ๋คํธ์ํฌ์ ์์กดํ์ง ์๊ณ ๋ก์ปฌ์์๋ ์์
ํ ์ ์์.
4๏ธโฃ ๋๊ท๋ชจ ํ๋ก์ ํธ ์ง์.
- ๋๊ท๋ชจ ์ฝ๋๋ฒ ์ด์ค์์๋ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ๋์.
5๏ธโฃ ์คํ ์์ค ๋ฐ ์ปค๋ฎค๋ํฐ ์ง์.
- ์คํ ์์ค ํ๋ก์ ํธ๋ก์ ํ๋ฐํ ์ปค๋ฎค๋ํธ์ ๋ค์ํ ๋๊ตฌ ์ง์.
4๏ธโฃ Git์ ๋จ์ .
1๏ธโฃ ํ์ต ๊ณก์ .
- Git ๋ช
๋ น์ด์ ๊ฐ๋
์ด ๋ณต์กํ์ฌ ์ด๋ณด์๊ฐ ์ตํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์.
2๏ธโฃ ์ถฉ๋ ๊ด๋ฆฌ.
- ํ์
์ค ๋ณํฉ ์ถฉ๋(Merge Conflict)์ด ๋ฐ์ํ๋ฉด ์๋์ผ๋ก ํด๊ฒฐํด์ผ ํจ.
3๏ธโฃ ํ์ผ ํฌ๊ธฐ ์ ํ.
- ๋์ฉ๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ ๊ด๋ฆฌ์๋ ์ ํฉํ์ง ์์(Git LFS ์ฌ์ฉ ํ์).
5๏ธโฃ Git์ด ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ด์ .
-
- ์คํ์์ค๋ก ๋ฌด๋ฃ ์ ๊ณต.
-
- Github, GitLab, Bitbucket ๋ฑ์ ํ๋ซํผ๊ณผ์ ํตํฉ.
-
- ๋ค์ํ ๊ฐ๋ฐ ๋๊ตฌ(IDE)์์ ํธํ์ฑ.
-
- ๋๊ท๋ชจ ํ์
ํ๋ก์ ํธ๋ฅผ ์ํ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ ๊ณต.