Git ์๊ฐ
๋๊ตฌ ๊ฐ์
- ๋ฒ์ ๊ด๋ฆฌ์ ๋ํ ๋๊ตฌ
๋ชฉ์ : ์ปค๋ฎค๋์ผ์ด์
- ์ฐ์ถ๋ฌผ์ ๋ฌด๊ฒฐ์ฑ ํ๋ณด
- ์์ค์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ - ํ์ผ ๋ณ๊ฒฝ ์ด๋ ฅ ๊ด๋ฆฌ
- ์ ์ด๋ ๊ฒ ์์ ํ๋์ง ํ์ธ
์ผ๋ฐ์ ์ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- ๋ณ๋์ ์ ์ฅ์ ์ด์ ์๋ฒ ์ฌ์ฉ
- Git: GitHub, Bitbucket, Gitlab, Gitblit
- ํด๋ผ์ด์ธํธ๋ Core๋ ๋ณ๋์ ํ์ฅ ๋๊ตฌ ์ฌ์ฉ
- Eclipse/Intelli J ๊ณ์ด/Vs Code ํ๋ฌ๊ทธ์ธ: ๊ธฐ๋ณธ ํฌํจ
Git ๊ฐ์
์ญ์ฌ
- 2005๋ ๋ฆฌ๋์ค ํ ๋ฐ์ฆ๋ฅผ ์ค์ฌ์ผ๋ก ๊ฐ๋ฐ
- ํ์ฌ GitHub์์ ์ด์
์ฌ์ฉ ์ฃผ์ฒด
- ๋ฆฌ๋ ์ค, Git์ ํฌํจํ์ฌ ์ฃผ์ ์คํ์์ค๋ Git(GitHub) ์ฌ์ฉ
- ํ์ฌ์ ์ ๊ท ํ๋ก์ ํธ๋ Git์ ๋ง์ด ์ฌ์ฉํ๋ ์ถ์ธ
Git
๋ถ์ฐ ์์คํ ๊ธฐ๋ฐ
- ์๊ฒฉ ์ ์ฅ์์ ๋์ผํ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ๊ฐ ๊ฐ๋ฐ์๊ฐ ์ ์ง
๊ธฐ๋ณธ ์ฉ์ด
๋ฒ์
- Git์์ ๋ฌธ์๋ฅผ ์์ ํ๊ณ ์ง์ ํ ๋๋ง๋ค ์๊ธฐ๋ ๊ฒ
- ๋ฒ์ ๋ง๋ค ๋ณ๊ฒฝ ์์ ๊ณผ ๋ณ๊ฒฝ ๋ด์ฉ์ ํ์ธํ ์ ์์
- ์ด์ ๋ฒ์ ์ผ๋ก ๋๋์๊ฐ ์ ์์
์์ ํธ๋ฆฌ, ์คํ ์ด์ง, ์ ์ฅ์
โป ์ด ์ ์ฅ์๋ ๋ก์ปฌ ์ ์ฅ์์ ํด๋น๋จ
์๋ฌธ | ์ค๋ช |
Init | ๊ธฐ์กด ํด๋์ ์ ์ฅ์๋ฅผ ์์ฑ |
Clone | ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ด ๋ก์ปฌ์ ๋ณต์ฌ |
Push | ๋ด ์ ์ฅ์์ ๋ณ๊ฒฝ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์์ ๋ฐ์ |
Pull | ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ์ฌํญ์ ๋ด ์ ์ฅ์์ ๋ฐ์ |
Add | ์์ ๋ ํ์ผ์ Staging Area์ ๋ฑ๋กํ์ฌ Staged ์ํ ๋ง๋ฆ |
Check-out | ์์ ํ ๋ธ๋์น๋ฅผ ์ง์ |
Commit | Staged ์ํ์ ํ์ผ์ ๋ก์ปฌ ์ ์ฅ์์ ๋ฐ์ |
Remote Rspository | ๊ณต์ ๋ฅผ ์ํด ์ฌ์ฉํ๋ ์ ์ฅ์, ์๋ฒ์ ์ญํ (๊นํ๋ธ๊ฐ์ ์๊ฒฉ ์ ์ฅ์) |
๊น ์ ์ฅ์ ๋ง๋ค๊ธฐ (๋ก์ปฌ ์ ์ฅ์)
๊น ์ด๊ธฐํ
- ์ํ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ฅ์๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ฆ
- ์ด๊ธฐํ ํ์ .git ๋๋ ํ ๋ฆฌ๊ฐ ์๊น (์จ๊น ํด๋์)
๋ช ๋ น์ด (์๋๋ก์ด๋ ์คํ๋์ค์์ ํ ๋๋ ์ฌ์ฉํ์ง ์์ (์๋ ๋ฐฐ์ฐ๋ ์ค..))
$ git init
๋ฒ์ ๋ง๋ค๊ธฐ
๋ฒ์ ๋ง๋๋ ๊ณผ์
1) ์์ ํธ๋ฆฌ์์ ํ์ผ์ ์์ ํ๊ณ ์ ์ฅ
2) ๋ฒ์ ์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ์คํ ์ด์ง์ ๋ฃ์ (๋ฒ์ ์ ๋ง๋ค๊ธฐ ์ ํ์ผ์ ๋๊ธฐ์ํค๋ ๊ฒ)
- git add . / git add hello.txt
- ์์ ํธ๋ฆฌ์์ ์์ ํ ํ์ผ(hello.txt)์ ์คํ ์ด์ง์ ์ถ๊ฐ
3) ์คํ ์ด์ง์ ์๋ ํ์ผ์ ์ ์ฅ์์ ๋ฒ์ ์ผ๋ก ์ ์ฅ (๋ฒ์ ์์ฑ)
- git commit -m "message 1"
- ๋ฒ์ ์ ๋ง๋๋ ๊ฒ์ '์ปค๋ฐํ๋ค'๋ผ๊ณ ํจ
- ๋ฒ์ ์ ์ด๋ค ๋ณ๊ฒฝ์ด ์์๋์ง ๋ฉ์์ง๋ฅผ ํจ๊ป ๊ธฐ๋กํด ๋
GitHub
์๊ฒฉ ์ ์ฅ์
- ์ง์ญ ์ ์ฅ์(๋ก์ปฌ ์ ์ฅ์)๊ฐ ์๋ ์ปดํจํฐ๋ ์๋ฒ์ ๋ง๋ ์ ์ฅ์
- ์ง์ญ ์ ์ฅ์์ ์ฐ๊ฒฐ๋์ด ์์
- ์ธํฐ๋ท์์ ์๊ฒฉ ์ ์ฅ์ ์ ๊ณต ์๋น์ค๋ฅผ ์ฃผ๋ก ์ฌ์ฉ → ๊นํ๋ธ
์๊ฒฉ ์ ์ฅ์ ๋ง๋ค๊ธฐ
โ Repository nome: ์ ์ฅ์ ์ด๋ฆ, ์๋ฌธ๊ณผ ์ซ์, ์ธ๋๋ฐ(_), ๋ถ์ํ(-) ๋ฑ ์ฌ์ฉ ๊ฐ๋ฅ
โก Description: ์ ์ฅ์์ ๋ํ ๊ฐ๋จํ ์ค๋ช ์ ๋ ฅ
โข Public / Private: ์ ์ฅ์๋ฅผ ๊ณต๊ฐ๋ก ํ ์ง ๋น๊ณต๊ฐ๋ก ํ ์ง ์ ํ
โฃ Initialize this repository with a README: ์ ์ฅ์์ ๋ํ ์๊ฐ์ ์ค๋ช ์ ์์ฑํ๋ README ํ์ผ ์๋์ผ๋ก ์์ฑ
โค Add .gitignore: [โผ]๋ฅผ ๋๋ฅธ ํ ์ด๋ค ์ธ์ด์ ๊ด๋ จ๋ ๊ฒ๋ค์ .gitignore ํ์ผ์ ์ง์ ํ ์ง ์ ํ (.gitignore๋ ๊น์์ ๋ฌด์ํ ํ์ผ์ ์ ์ฅํ ๋ชฉ๋ก)
- ์) ์๋๋ก์ด๋ ์ ํ -> gitignore ํ์ผ์ ์ ์ฅ๋ ํ์ผ๋ค์ ๋ฌด์ํ๊ฒ ๋จ
โฅ Add a License: ์คํ ์์ค ํ๋ก์ ํธ ์ ์ฅ์๋ฅผ ๋ง๋ค ๊ฒฝ์ฐ ์คํ ์์ค์ ๋ผ์ด์ ์ค ์ ํ
๋ก์ปฌ ์ ์ฅ์๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ฐ๊ฒฐํ๊ธฐ
- ๋ช ๋ น์ด ์์ด ์ฌ์ฉ ๊ฐ๋ฅ (์๋๋ก์ด๋ ์คํ๋์ค ์ด์ฉํด์ ๋ช ๋ น์ด ์์ด ์ฌ์ฉํ ์์ )
๊นํ๋ธ ์ ์ฅ์ ์ฃผ์ ๋ณต์ฌ
- ์ฃผ์ ๋ณต์ฌํด์ ๋ก์ปฌ ์ ์ฅ์์ ์ฐ๊ฒฐ
์๊ฒฉ ์ ์ฅ์ ์ฐ๊ฒฐํ๊ธฐ
- git remote add origin ๋ณต์ฌํ ์ฃผ์ ๋ถ์ฌ๋ฃ๊ธฐ (๊นํ๋ธ ์ ์ฅ ์ฃผ์๋ฅผ origin์ผ๋ก ์ค์ฌ์ ํํํ๊ณ remote์ ์ถ๊ฐํจ)
์๊ฒฉ ์ ์ฅ์ ํ์ผ ์ฌ๋ฆฌ๊ธฐ
์๊ฒฉ ์ ์ฅ์์ ํ์ผ ์ฌ๋ฆฌ๊ธฐ
- ํธ์(push): ์ง์ญ ์ ์ฅ์์ ์์ค๋ฅผ ์๊ฒฉ ์ ์ฅ์๋ก ์ฌ๋ฆฌ๋ ๊ฒ ๋ง๋ค๊ธฐ
- ์ง์ญ ์ ์ฅ์์ ์์ค๋ฅผ ์๊ฒฉ ์ ์ฅ์(origin)์ master ๋ธ๋์น๋ก ํธ์
- ์ฒ์ ํธ์ํ ๋๋ -u ์ต์ ์ ๋ถ์ฌ์ค (git push -u origin master)
- ํ๋ฒ ํธ์ํ ํ์๋ git push ๋ช ๋ น์ผ๋ก ํธ์
- ์๊ฒฉ ์ ์ฅ์๋ก ์ ์ํ๋ฉด ์ง์ญ ์ ์ฅ์์ ์๋ ํ์ผ๊ณผ ์ปค๋ฐ์ด ์ฌ๋ผ๊ฐ ์์
์๊ฒฉ ์ ์ฅ์์์ ํ์ผ ๋ด๋ ค๋ฐ๊ธฐ
์๊ฒฉ ์ ์ฅ์์์ ํ์ผ ๋ด๋ ค๋ฐ๊ธฐ
- ํ(pull): ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ์ด ์์ ๊ฒฝ์ฐ ์๊ฒฉ ์ ์ฅ์์ ์์ค๋ฅผ ์ง์ญ ์ ์ฅ์๋ก ๊ฐ์ ธ์ด
- git pull origin master
ํ์ ํ๊ธฐ
๊ณต๋ ์์ ์ ์ถ๊ฐํ๊ธฐ
- ๋ค๋ฅธ ์ปดํจํฐ์์ ์๋ก ๋ค๋ฅธ ๊ณ์ ์ผ๋ก ํ๋์ ์๊ฒฉ ์ ์ฅ์์ ์ ๊ทผํ ๋ ์์ค๋ฅผ ๋ฌด๋ถ๋ณํ๊ฒ ์์ ํ ์ ์๋๋ก ์น์ธ๋ ๊ณต๋ ์์ ์์๊ฒ๋ง ์ปค๋ฐ ๊ถํ์ ์ฃผ๋๋ก ํจ
์ฒซ๋ฒ์งธ ์์ ์๊ฐ ์ปค๋ฐ ํ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์
๊ณต๋ ์์ ์๋ค์ git clone ๋ช ๋ น์ผ๋ก ์์ ์ ์ปดํจํฐ์ ์๊ฒฉ ์ ์ฅ์ ๋ณต์
์์ค๋ฅผ ์์ ํ๊ฑฐ๋ ์ถ๊ฐํ๊ธฐ
- ์๊ฒฉ ์ ์ฅ์์์ ํ(pull)์ ๋จผ์ ํ ํ
- ์์ ์ ๋ก์ปฌ ์ ์ฅ์์์ ์ปค๋ฐ(commit)ํ๊ณ
- ์๊ฒฉ ์ ์ฅ์๋ก ํธ์(push)
Git์ Branch
๋ธ๋์น(Branch)
- ์๋ณธ์ ๋ณต์ฌ๋ณธ
- ๋๋ถ๋ถ์ VCS(Version Control System)์์ ์ง์
- ์ฉ๋
- ํน์ ๊ธฐ๋ฅ์ ์๋ณธ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ๊ฐ๋ฐ/ํ ์คํธ ํ๊ธฐ ์ใ
- ๋ฒ ์ด์ค๋ผ์ธ์ ์ค์ ํ๊ธฐ ์ํด
Git ๋ธ๋์น์ ์ฉ์ดํจ
- Git์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ์ง ์๊ณ , ๋ณ๊ฒฝ์ ์ค๋ ์ท ํฌ์ธํฐ๋ก ๊ด๋ฆฐ
- ์๋ฒ ์์ฒด๋ฅผ ๋ณต์ ํ๊ธฐ ๋๋ฌธ์, ํฌ์ธํฐ๋ฅผ ์ด์ฉํ ๋ธ๋์น ์์ฑ ๋ฐ ์ด๋ ๊ฐ๋ฅ
Git๋ฅผ ๋ณด๋ค ์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, ๋ธ๋์น๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฐ์ ์ข์ฐ
'Study > GitโGitHub' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋๋ก์ด๋ ์คํ๋์ค์์ Git ์ฌ์ฉํ๊ธฐ (0) | 2023.07.18 |
---|---|
[GitHub/Git] Git & GitHub ๊ธฐ๋ณธ ๊ฐ๋ (0) | 2022.09.14 |