CS/๊ฐ๋ฐ์์
[๊ฐ๋ฐ์์] #3. Git๊ณผ Github์ ์ฐจ์ด
์ฝ๋999
2023. 1. 10. 23:36
1. Git
- Version Control System(VCS)๋ก ๋ก์ปฌ์์ ๊ด๋ฆฌ๋๋ ๋ฒ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ
- ์์ค์ฝ๋ ์์ ์ ๋ค๋ฅธ ๋ฒ์ ์ ๊ด๋ฆฌํด์ฃผ๋ ์์คํ
* VCS : ํ์ผ ๋ณํ๋ฅผ ์๊ฐ์ ๋ฐ๋ผ ๊ธฐ๋กํ๋ค๊ฐ ํน์ ์์ ์ ๋ฒ์ ์ ๋ค์ ๋ถ๋ฌ์ฌ ์ ์๋ ์์คํ
- ์ฝ๋์ ์์ ๋ด์ญ์ ๊ธฐ๋ก/๊ด๋ฆฌํ๋๋ก ๋๋ ๋ฒ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ
- ๋ธ๋์น๋ฅผ ์์ฑ/๋ณต๊ตฌ/์ญ์ /๋ณํฉ ๊ฐ๋ฅ
- ํผ์ ์์ ํ๊ฑฐ๋ ํ์์ ์ธ ๋ฒ์์ ํ์
- ๊ฐ๋ฐ์์ ์ค์๊ฐ ์์ ๊ณต์ ๋ถ๊ฐ๋ฅ(๋ก์ปฌ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ)
2. Github
- ํด๋ผ์ฐ๋ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌ๋๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
- Git Repository๋ฅผ ์ํ ์น๊ธฐ๋ฐ ํธ์คํ ์๋น์ค
- ํด๋ผ์ฐ๋ ์๋ฒ(์์ฒด๊ตฌ์ถx)๋ฅผ ์ฌ์ฉํด ๋ก์ปฌ์์ ๋ฒ์ ๊ด๋ฆฌํ ์์ค์ฝ๋๋ฅผ ์ ๋ก๋ํ์ฌ ๊ณต์ ๊ฐ๋ฅ
- ์ ์ฅ์๋ฅผ ๊นํ๋ธ์์ ์ ๊ณตํด์ฃผ๋ ํด๋ผ์ฐ๋ ์๋ฒ๋ฅผ ์ด์ฉ
- ํ์ ์ ์คํ์์ค ๊ณต์ ๊ฐ๋ฅ
3. Git ๊ด๋ จ ์ฉ์ด
- ๋ก์ปฌ ์ ์ฅ์(local repository) : ๋ด PC์์ ๊ด๋ฆฌํ๋ git์ ์ฅ์
- ์๊ฒฉ ์ ์ฅ์(remote repository) : ๋ก์ปฌ์ ์ฅ์๋ฅผ ์ ๋ก๋ ํ๋ ๊ณณ (ex. GitHub, Bitbucket,GitLab ๋ฑ)
- Staging Area(Index) : ์์ ํด๋์์ ์์ ํ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ๋กํ๋ ๊ณณ(git์ ์ฅ์์ commitํ๊ธฐ ์ ์ฌ๋ ค๋๋ ๊ณต๊ฐ)
- ์ปค๋ฐ(commit) : Git(๋ก์ปฌ ์ ์ฅ์)์ ํ์ผ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฅํ๋ ์์
- ํธ์ฌ(push) : Github(๋๋ ์๊ฒฉ ์ ์ฅ์)์ ํ์ผ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฅํ๋ ์์
- ํ(pull) : Github(๋๋ ์๊ฒฉ ์ ์ฅ์)์ ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ์์
- ๋จธ์ง(merge) : ๋ธ๋์น ๋ณํฉ
3-1. commit type
- feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
- fix : ๋ฒ๊ทธ ์์
- docs : ๋ฌธ์ ์์
- style : ์ฝ๋ ํฌ๋งทํ , ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ
- refector : ์ฝ๋ ๋ฆฌํํ ๋ง
- test : ํ ์คํธ ์ฝ๋, ๋ฆฌํํ ๋ง ํ ์คํธ ์ฝ๋ ์ถ๊ฐ
- chore : ๋น๋์ ๋ฌด ์์ , ํจํค์ง ๋งค๋์ ์์
4. Git์ 3๊ฐ์ง ์์ญ
- Working Directory : ๋ด๊ฐ ์์ ํ๊ณ ์๋ ํ๋ก์ ํธ์ ๋๋ ํ ๋ฆฌ
- Staging Area : ์ปค๋ฐํ๊ธฐ ์ํด $git add ๋ช ๋ น์ด๋ก ์ถ๊ฐํ ํ์ผ๋ค์ด ๋ชจ์ฌ์๋ ๊ณต๊ฐ
- Repository : ์ปค๋ฐ๋ค์ด ๋ชจ์ฌ์๋ ์ ์ฅ์
5. Staging Area
์ด๋ค ๋ณ๊ฒฝ์ฌํญ์ด ์ ์ฅ์์ ์ปค๋ฐ๋๊ธฐ ์ ์ ๋ฐ๋์ ๊ฑฐ์ณ์ผํ๋ ์ค๊ฐ๋จ๊ณ์ด๋ค.
Staging Area์ ์ถ๊ฐํ ํ์ผ๋ค์ commit ํ๋ฉด ์ต์ข ์ ์ผ๋ก ์ ์ฅ์(Repository)์ ์ ์ฅ๋๋ค.
6. ์ ๋ฆฌ
Git์ ๋ฒ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ด๊ณ
Github๋ ๋ฒ์ ๊ด๋ฆฌ, ์์ค์ฝ๋ ๊ณต์ , ๋ถ์ฐ๋ฒ์ ์ ์ด ๋ฑ์ด ๊ฐ๋ฅํ ์๊ฒฉ ์ ์ฅ์๋ค.