GitHub ์ํฌํ๋ก ์์ ํ๊ธฐ
ํ์ต ๋ชฉํ
์ด ์ ๋์ ์๋ฃํ๋ฉด ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- GitHub ์ํฌํ๋ก์ ๋จ๊ณ๋ฅผ ๋์ดํ ์ ์์ต๋๋ค.
- ์๊ฒฉ ๊ทผ๋ฌด ํ๊ฒฝ๊ณผ ํ์ง ๊ทผ๋ฌด ํ๊ฒฝ์ ์ฐจ์ด์ ์ ์ค๋ช
ํ ์ ์์ต๋๋ค.
- ๋จ๊ณ๋ฅผ ์๋ฃํ์ฌ ์ ํ์ผ์ ๋ง๋ค๊ณ ๊ธฐ์กด ํ์ผ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.

GitHub ์ํฌํ๋ก ๊ฐ์
GitHub ํ๋ก๋ ํ๋ก์ ํธ๋ฅผ ์์์ํฌ ์ผ๋ ค ์์ด ์๋ก์ด ์์ด๋์ด๋ฅผ ์์ ํ๊ฒ ํ ์คํธํ ์ ์๋ ๊ฐ๋จํ ์ํฌํ๋ก์ ๋๋ค. ์ฃผ์ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฉ์ธ์์ ๋ฒ์ด๋ ๋ธ๋์น ๋ง๋ค๊ธฐ
- ์ปค๋ฐ ๋ง๋ค๊ธฐ
- ํ ์์ฒญ ์ด๊ธฐ
- ํ์
ํ๊ธฐ
- ๋ ๋ง์ ์ปค๋ฐ ๋ง๋ค๊ธฐ
- ํ ๊ตฌ์ฑ์๊ณผ ์ฝ๋์ ๋ํด ๋
ผ์ํ๊ณ ๊ฒํ ํ๊ธฐ
- ๋ ๋ง์ ์ปค๋ฐ ๋ง๋ค๊ธฐ
- ์ต์ข
ํ
์คํธ๋ฅผ ์ํด ๋ฐฐํฌํ๊ธฐ
- ๋ฉ์ธ ๋ธ๋์น๋ก ๋ธ๋์น ๋ณํฉํ๊ธฐ
๋ถ๊ธฐ ๋ง๋ค๊ธฐ
๋ธ๋์นญ์ Git์ ํต์ฌ ๊ฐ๋ ์ ๋๋ค. Git์ ๋ชจ๋ ๊ฒ์ ๋ธ๋์นญ์ ํตํด ์ด๋ฃจ์ด์ง๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ ํธ์ ํ๋ก๋์ ๋ฒ์ ์ ๋ฉ์ธ ๋ธ๋์น์ ์์ต๋๋ค.ย
์ ๊ธฐ๋ฅ์ ์คํํ๊ฑฐ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ค๋น๊ฐ ๋๋ฉด ํ๋ก์ ํธ์ ์ ๋ธ๋์น๋ฅผ ๋ง๋ญ๋๋ค. ๋ธ๋์น๋ ์ฒ์์๋ ๊ธฐ๋ณธ๊ฐ๊ณผ ๋์ผํ๊ฒ ํ์๋์ง๋ง ๋ณ๊ฒฝํ ๋ด์ฉ์ ๋ธ๋์น์๋ง ๋ฐ์๋ฉ๋๋ค.ย
์ปค๋ฐ ๋ง๋ค๊ธฐ
ํ๋ก์ ํธ ๋ด์ ํ์ผ์ ๋ณ๊ฒฝํ๋ ๋์ ๊ธฐ๋ฅ ๋ถ๊ธฐ๋ก ์ปค๋ฐํฉ๋๋ค.
๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ์ด๊ณ ํ์ ํ๊ธฐ
๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ์ด์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋ ผ์ํ์ธ์. ํ ์์ฒญ์ ์ฝ๋ ๊ฐ์ ์ ์์์ ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฐ ์๋ฒฝํ ํ์๋ ์์ต๋๋ค.
๋ฉ์ธ ๋ถ๊ธฐ์ ๋ณํฉํ๊ธฐ
ํ์ด ๋ณ๊ฒฝ ๋ด์ฉ์ ์น์ธํ๋ฉด ๊ธฐ๋ฅ ๋ถ๊ธฐ์์ ๋ฉ์ธ ๋ถ๊ธฐ๋ก ํ ์์ฒญ์ ๋ฐฐํฌํ๊ณ ๋ณํฉํฉ๋๋ค.ย
์ด๋ก ์ ์ผ๋ก๋ ๋ฉ์ ธ ๋ณด์ ๋๋ค. ์ด์ ์คํ์ ์ฎ๊ฒจ ๋ณด๊ฒ ์ต๋๋ค.
Git ์ค์นํ๊ธฐ
์ด ์ ๋์ ๋๋จธ์ง ๋ถ๋ถ์์ Git ์๋ฅผ ์ดํด๋ณด๊ธฐ ์ ์ ๋จผ์ ์ปดํจํฐ์ Git์ ์ค์นํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ก์ปฌ์์ ์ ์ฅ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. Git ์น ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ์ฌ Git ๊ณต์ ๋ฒ์ ์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ฅด์ธ์. ์ค์น ์ ๊ธฐ๋ณธ ์ค์ ์ ๋ชจ๋ ์๋ฝํฉ๋๋ค.
GitHub ๊ณ์ ๊ฐ์ ๋ฐ ์ ์ฅ์ ๋ง๋ค๊ธฐ
๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ GitHub ๊ฐ์ธ ๊ณ์ ์ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค. ์ด ๋ฒ์ ์ GitHub์ ๋ฌด๋ฃ ๋ฒ์ ์ด๋ฉฐ ์ด๋ฅผ ํตํด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅผ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก๋ ์์ ํ ์ ์ฅ์๋ฅผ ๋ง๋ญ๋๋ค.
- ๋จธ๋ฆฌ๊ธ์์
๋ฅผ ํด๋ฆญํ๊ณ New repository(์ ์ ์ฅ์)๋ฅผ ์ ํํฉ๋๋ค.
- Owner(์์ ์)์์ ๋ด ๊ณ์ ์ ์ ํํฉ๋๋ค.
- Repository(์ ์ฅ์) ์ด๋ฆ์
best-repo-ever๋ฅผ ์ ๋ ฅํฉ๋๋ค.
-
Public(๊ณต๊ฐ)์ ์ ํํฉ๋๋ค.
-
Initialize this repository with(์ ์ฅ์ ์ด๊ธฐํ)์์ Add a README file(README ํ์ผ ์ถ๊ฐ)์ ์ ํํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ Create repository(์ ์ฅ์ ๋ง๋ค๊ธฐ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
GitHub์์์ ์์ ๊ณผ ๋ก์ปฌ์์์ ์์ ๋น๊ตํ๊ธฐ
GitHub์์ ์ง์ ํ๋ก์ ํธ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ง๋ง ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๋ก์ปฌ ์ปดํจํฐ์์ ์์ ํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ์ต์ํ IDE ๋๋ ํ ์คํธ ํธ์ง๊ธฐ๋ก ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ช ๊ฐ์ง ์ค์ํ ์ฉ์ด๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
-
์๊ฒฉ ์ ์ฅ์๋ GitHub์ ์๋ ์ ์ฅ์ ์ฌ๋ณธ์
๋๋ค. ๋ชจ๋ ๊ณต๋ ์์
์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์์ ๋๊ธฐํํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๊ทธ๋ฃน ๋ด ์ ๋ขฐํ ์ ์๋ ์์ค๋ก ๋ง๋ญ๋๋ค.
-
๋ก์ปฌ ์ ์ฅ์๋ ์ฌ์ฉ์์ ์ปดํจํฐ์ ์ ์ฅ๋ git ์ ์ฅ์์
๋๋ค. ๋ก์ปฌ ๋๋ ํฐ๋ฆฌ๊ฐ ์๊ฒฉ ์ ์ฅ์์ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ๋ก์ปฌ ์ ์ฅ์๋ ๋ชจ๋ ํ์ผ, ๋ธ๋์น ๋ฐ ๋ด์ญ์ ํฌํจํ์ฌ ์๊ฒฉ ์ ์ฅ์์ ์๋ ๋ชจ๋ ๊ฒ์ด ์๋ ์ ์ฒด ๋ณต์ฌ๋ณธ์ด ๋ฉ๋๋ค.
๋ก์ปฌ ๋ฐ ์๊ฒฉ ์ ์ฅ์๋ Git์์ git clone, git fetch, git pull ๋ฐ git push์ ๋ค ๊ฐ์ง ๋คํธ์ํฌ ๋ช
๋ น ์ค ํ๋๋ฅผ ์คํํ ๋๋ง ์ํธ ์์ฉํฉ๋๋ค.
์ ์ฅ์์์ ๋ก์ปฌ๋ก ์์ ํ๋ ค๋ฉด ๋จผ์ ์ปดํจํฐ์์ ๋ณต์ ๋ณธ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ ์ฅ์๋ฅผ ๋ณต์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- GitHub์์ ๋ฐฉ๊ธ ๋ง๋ ์ ์ฅ์์ Code(์ฝ๋) ํญ์ ํด๋ฆญํฉ๋๋ค.
-
Code(์ฝ๋) ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ๋ณต์ URL์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํฉ๋๋ค.
- ๋ช
๋ น ํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฝ๋๋ค. Mac ๋๋ Linux๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํฐ๋ฏธ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Windows์ ๊ฒฝ์ฐ Git Bash๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Git Bash๋ Git๊ณผ ํจ๊ป ์ค์น๋ฉ๋๋ค.
- GitHub์์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ฅ์ ์ ์ฒด ๋ณต์ฌ๋ณธ์ ๊ฐ์ ธ์ต๋๋ค.
git clone URL
์์์ ๋ณต์ฌํ ๋ณต์ URL๋ก ๋ฐ๊ฟ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.Cloning into 'best-repo-ever'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (3/3), done.
- ๋ณต์ ๊ฐ ์๋ฃ๋๋ฉด ๋ณต์ ์์
์ผ๋ก ์์ฑ๋ ์ ๋๋ ํฐ๋ฆฌ
cd best-repo-ever๋ก ์ด๋ํฉ๋๋ค.
๋ก์ปฌ ํ๊ฒฝ ์ค์ ํ๊ธฐ
์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ์ค์ ํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ๊ตฌ์ฑ์ ํ ๋ฒ๋ง ์ค์ ํ๋ฉด ๋ฉ๋๋ค. Git์ ์ฌ์ฉํ๋ฉด ์ธ ๊ฐ์ง ์์ค์์ ๊ตฌ์ฑ ์ต์ ์ ์ค์ ํ ์ ์์ต๋๋ค. ๋ค์ ๊ตฌ์ฑ ๋ช ๋ น ์ต์ ์ ํ์ธํด๋ณด์ธ์.
๋ช ๋ น ์ต์ |
์ค๋ช |
|---|---|
git config --system |
์์คํ ์ ์ฒด๋ฅผ ์ค์ ํ๋ ๊ฒ์ผ๋ก ์ปดํจํฐ์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ ์ฉ๋ฉ๋๋ค. |
git config --global |
์ฌ์ฉ์ ์์ค์ ์ค์ ์ผ๋ก ์ฌ์ฉ์ ๊ณ์ ์๋ง ์ ์ฉ๋ฉ๋๋ค. |
git config --local |
์ ์ฅ์ ์์ค์ ์ค์ ์
๋๋ค. ํด๋น ๊ตฌ์ฑ์ด ์ค์ ๋ ํน์ ์ ์ฅ์์๋ง ์ ์ฉ๋ฉ๋๋ค. Git ๊ตฌ์ฑ์์ ๊ธฐ๋ณธ๊ฐ์ |
Git์์ ์๋์ผ๋ก ์ค์ ๋๋ ๊ฒ์ด ๋ช ๊ฐ์ง ์์ต๋๋ค. git config --list๋ฅผ ์
๋ ฅํ๋ฉด ์ธ ๊ฐ์ง ์์ค์ ํ๊ฒฝ ์ค์ ์ ๋ชจ๋ ๋ณผ ์ ์์ต๋๋ค.
Git๋ ์ฌ์ฉ์ ์ด๋ฆ ๋ฐ ์ด๋ฉ์ผ ์ฃผ์์ ๋ํ ํ๊ฒฝ ์ค์ ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ๋ง๋ ๊ฐ ์ปค๋ฐ์ ๋ํด ๊ณ ์ ํ ์ง๋ฌธ์ ์์ฑํฉ๋๋ค.ย
์ด๋ฌํ ์ค์ ์์ด๋ ์ปค๋ฐ์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก ๋ช ๋ น์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ์ง์ ์ค์ ํฉ๋๋ค.
git config --global user.name "First Last"
๊ทธ๋ฐ ๋ค์ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
git config --global user.email "you@email.com"
autocrlf ์ค์
๋ค์์ผ๋ก core.autocrlf๋ฅผ ์ค์ ํฉ๋๋ค(autocrlf๋ ์๋ ์บ๋ฆฌ์ง ๋ฆฌํด ๋ผ์ธ ํผ๋์ ์ฝ์). ์๋ก ๋ค๋ฅธ ์์คํ ์ ํ์ ๋ ๋ถ๋ถ๊ณผ ์ค ๋ฐ๊ฟ์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํฉ๋๋ค. ๋ค๋ฅธ ์ด์ ์ฒด์ ์์ ์์ฑ๋ ํ์ผ์ ์ด ๋ ์ด ํ๊ฒฝ ์ค์ ์ต์ ์ด ์ค์ ๋์ด ์์ง ์์ ๊ฒฝ์ฐ Git์ ์ด์ ์ฒด์ ๊ฐ ํ ๋ ๋ถ๋ถ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ฐ๋ผ ํ์ผ์ ๋ณ๊ฒฝํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
Windows ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
git config --global core.autocrlf true
Mac ๋๋ Linux ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
git config --global core.autocrlf input
GitHub๋ก ํ์ผ ์ถ์ ํ๊ธฐ
GitHub๋ก ์์ ํ๋ ค๋ฉด ์์ฒญ์ ์ธ์ฆํ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ๋ช ๋ น์ค ์ธํฐ๋ ์ ์์๋ GitHub CLI๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ฐ์คํฌํฑ์ ๊ฒฝ์ฐ GitHub Desktop์ด ์์ต๋๋ค. ์ด ๋ฑ์ง์ ๊ฒฝ์ฐ GitHub Desktop์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
-
GitHub Desktop์ ๋ค์ด๋ก๋ ๋ฐ ์ค์นํฉ๋๋ค.
- GitHub Desktop์ ์์ํฉ๋๋ค.
-
GitHub.com์ ๋ก๊ทธ์ธ์ ํด๋ฆญํฉ๋๋ค.
- ์ง์์ ๋ฐ๋ผ ์ก์ธ์ค๋ฅผ ํ์ฉํฉ๋๋ค.
- Configure Git(Git ์ค์ )์์ Use my GitHub account name and email address(๋ด GitHub ๊ณ์ ๋ฐ ์ด๋ฉ์ผ ์ฃผ์ ์ฌ์ฉ)๋ฅผ ์ ํํฉ๋๋ค.
-
Finish(์๋ฃ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
GitHub Desktop์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์ด๋ฏธ GitHub์์ ์ ์ฅ์๋ฅผ ๋ณต์ ํ์ผ๋ฏ๋ก ๋ก์ปฌ ์ ์ฅ์๋ฅผ ์๊ฒฉ GitHub ์ ์ฅ์์ ์ฐ๊ฒฐํด ๋ณด๊ฒ ์ต๋๋ค.
-
Add an Existing Repository from your Local Drive(๋ก์ปฌ ๋๋ผ์ด๋ธ์์ ๊ธฐ์กด ์ ์ฅ์ ์ถ๊ฐ)๋ฅผ ํด๋ฆญํ๊ฑฐ๋ File(ํ์ผ) > Add Local Repository(๋ก์ปฌ ์ ์ฅ์ ์ถ๊ฐ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- Choose(์ ํ)๋ฅผ ํด๋ฆญํ์ฌ best-repo-ever ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฐพ์ ์ ํํฉ๋๋ค.

- Open(์ด๊ธฐ)์ ํด๋ฆญํฉ๋๋ค.
- Add Repository(์ ์ฅ์ ์ถ๊ฐ)๋ฅผ ํด๋ฆญํฉ๋๋ค.

์ด์ ์ ์ฅ์์ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ด ์๊ณ Git์ ์ค์ ํ๊ณ GitHub์ ์ธ์ฆํ์ผ๋ฏ๋ก GitHub ์ํฌํ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋ณ๊ฒฝํ ์ค๋น๊ฐ ๋์์ต๋๋ค. Git์ผ๋ก ์์ ํ ๋ ๋ช ๋ น์ค, GitHub Desktop, GitHub ์ฌ์ด๋ฅผ ์ค๊ฐ๋ฉฐ ์์ ํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋จผ์ README.md ํ์ผ์ ๊ฐ๋จํ๊ฒ ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค.ย
1๋จ๊ณ: ๋ธ๋์น ๋ง๋ค๊ธฐ
ํฐ๋ฏธ๋์์ ๋ก์ปฌ ๋ธ๋์น ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด git branch๋ฅผ ์
๋ ฅํฉ๋๋ค. ์ง๊ธ์ main ๋ธ๋์น 1๊ฐ๋ง ํ์๋ ๊ฒ์
๋๋ค.ย
์์
์ ์ํ ์ ๋ธ๋์น(myfeaturebranch)๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
- ๋ค์๊ณผ ๊ฐ์ด ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค.
git branch myfeaturebranch
- ๋ค์์ ์
๋ ฅํ์ฌ ํด๋น ๋ธ๋์น๋ก ์ฒดํฌ์์ํฉ๋๋ค.
git checkout myfeaturebranch
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
|
git checkout myfeaturebranch Switched to branch 'myfeaturebranch' |
|---|
2๋จ๊ณ: README.md ํ์ผ์ ๋ณ๊ฒฝํ๊ณ ๋ก์ปฌ ์ ์ฅ์์ ๋ณ๊ฒฝ ์ฌํญ ์ ์ฉํ๊ธฐ
์ด์ ์ ๋ธ๋์น๋ฅผ ํ์ธํ์ผ๋ ๋ช ๊ฐ์ง ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ณ Git์ด ์ค์ ๋ก ์ด๋ป๊ฒ ๋์ํ๋์ง ํ์ธํฉ๋๋ค.
- ์ ์ฅ์์์ README.md๋ฅผ ์ฝ๋๋ค.
- ์ต์ํ ํ
์คํธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ถ ์ปจํ
์ธ ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ์๋ฃ๋๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํฉ๋๋ค.
ํ์ผ์ ์ผ๋ถ ๋ณ๊ฒฝํ๋ค๋ฉด ์ฒซ ๋ฒ์งธ ์ค๋ ์ท์ ๋ง๋ค ์ฐจ๋ก์ ๋๋ค. ๋ช ๋ น ํ์์ ์์ ํ ๊ฒฝ์ฐ 2๋จ๊ณ ์ปค๋ฐ์ด๋ผ๋ ๊ฐ๋ ์ ์ดํดํด์ผ ํฉ๋๋ค.
๋ก์ปฌ์์ ์์ ํ ๋ Git์ ํ์ผ๊ณผ ๋ณ๊ฒฝ ์ฌํญ์ ํธ๋ฆฌ 3๊ฐ์ ์ ๋ฆฌํ์ฌ ๋ด์ญ์ ์ถ์ ํฉ๋๋ค. ์ด 3๊ฐ์ ํธ๋ฆฌ๋ ์์ , ์คํ ์ด์ง(์ธ๋ฑ์ค๋ผ๊ณ ๋ ํจ) ๋ฐ ์ด๋ ฅ์ ์๋ฏธํฉ๋๋ค. ํ์ผ์ ์ถ๊ฐ, ์ญ์ ๋ฐ ๋ณ๊ฒฝ์ ์์ ํธ๋ฆฌ์์ ์ํํฉ๋๋ค.

๋ฒ์ ๊ด๋ฆฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํ๋ ค๋ฉด ์์ ์ ๊ฐ๋ณ ๋จ์๋ฅผ ๋ํ๋ด๋ ํ์ผ ๋ชจ์์ ๋ง๋ญ๋๋ค. ํด๋น ๋จ์๋ ์คํ ์ด์ง ์์ญ์ ๋ง๋ญ๋๋ค.
์ทจํฉํ ์์ ๋จ์์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์คํ ์ด์ง ์์ญ์ ๋ชจ๋ ๊ฒ์ ์ค๋ ์ท์ผ๋ก ์ฐ์ต๋๋ค. ์ด๋ฅผ ์ปค๋ฐ์ด๋ผ๊ณ ํฉ๋๋ค.
git status, git add ๋ฐ git commit ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค๋ฅผ ์๋ฃํฉ๋๋ค.ย
- ๋ค์์ ์
๋ ฅํ์ฌ ์์
ํธ๋ฆฌ์ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
git status
README.md ํ์ผ์ด ์์ ๋์์ง๋ง, ๋ณ๊ฒฝ ์ฌํญ์ด ์ปค๋ฐ์ ์ํด ์คํ ์ด์ง๋์ง ์์ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.

- ๋ค์์ ์
๋ ฅํ์ฌ ์์
ํธ๋ฆฌ์์ ์คํ
์ด์ง ์์ญ์ผ๋ก ํ์ผ์ ์ฎ๊น๋๋ค.
git add README.md
- ๋ค์์ ์
๋ ฅํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
git status
README.md ํ์ผ์ด Changes to be committed(์ปค๋ฐ๋ ๋ณ๊ฒฝ ์ฌํญ)์ ์๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.

- ๋ค์์ ์
๋ ฅํ์ฌ ์ฒซ ๋ฒ์งธ ์ค๋
์ท์ ์ฐ์ต๋๋ค.
git commit -m "My first commit"
- ๋ค์์ ์
๋ ฅํ์ฌ ์ ์ฅ์ ์ํ๋ฅผ ๋ค์ ํ์ธํฉ๋๋ค.
git status
- ์ปค๋ฐํ ๋ด์ฉ์ด ์์ผ๋ฉฐ ์์
ํธ๋ฆฌ๊ฐ ๊นจ๋ํ ์ํ์
๋๋ค.
3๋จ๊ณ: ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ ์ฌํญ ๋ณด๋ด๊ธฐ
ํ์ฌ ์ด ์ปค๋ฐ์ ๋ก์ปฌ์์๋ง ์คํ๋ฉ๋๋ค. ์๊ฒฉ ์ ์ฅ์๋ฅผ ํ์ธํ๋ฉด ๋ธ๋์น ๋๋ ๋ฐฉ๊ธ ๋ณ๊ฒฝํ ๋ด์ฉ์ด ํ์๋์ง ์์ต๋๋ค. ์๊ฒฉ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด๋ ค๋ฉด ๋จผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํด์ผ ํฉ๋๋ค.ย
์ด ๋ธ๋์น๋ฅผ ๋ก์ปฌ๋ก ์์ฑํ์ผ๋ฏ๋ก GitHub Desktop์ ์ฌ์ฉํ์ฌ ํด๋น ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ๊ฒ์ํฉ๋๋ค.
- GitHub Desktop์ ์ฝ๋๋ค.
-
Publish branch(๋ธ๋์น ๊ฒ์)๋ฅผ ํด๋ฆญํฉ๋๋ค.
4๋จ๊ณ: ํ ์์ฒญ ๋ง๋ค๊ธฐ
๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํ์ผ๋ฏ๋ก ์ด์ GitHub์์ ํ ์์ฒญ์ ์ด์ด ๋ณด๊ฒ ์ต๋๋ค.ย
- ์น์์ GitHub ๊ณ์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
-
Pull Request(ํ ์์ฒญ) ํญ์ ํด๋ฆญํฉ๋๋ค.
-
New Pull Request(์๋ก์ด ํ ์์ฒญ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
-
Base(๋ฒ ์ด์ค) ๋๋กญ๋ค์ด์์ main(๋ฉ์ธ)์ ์ ํํฉ๋๋ค.
-
Compare(๋น๊ต) ๋๋กญ๋ค์ด์์ myfeaturebranch๋ฅผ ์ ํํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.

-
Create pull request(ํ ์์ฒญ ๋ง๋ค๊ธฐ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
-
Add a title(์ ๋ชฉ ์ถ๊ฐ)์
My first commit(๋ด ์ฒซ ๋ฒ์งธ ์ปค๋ฐ)์ด ์์ด์ผ ํฉ๋๋ค.
- ์ํ ๊ฒฝ์ฐ ์ค๋ช
์ ์ถ๊ฐํ์ธ์.
-
Create pull request(ํ ์์ฒญ ๋ง๋ค๊ธฐ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ฝ๋ ๊ฒํ ๋ฅผ ํตํ ์ฝ๋์ ํ์ง ๊ด๋ฆฌํ๊ธฐ
ํ ์์ฒญ์ ๊ธฐ๋ฅ์ ๋จ์ํ ๋ธ๋์น๋ฅผ ๋น๊ตํ๋ ๊ฒ๋ง์ด ์๋๋๋ค. ์๋ ๋๋ ์๋์ผ๋ก ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ํ์ง์ ๋ณด์ฆํ๋ ์๋จ์ด๊ธฐ๋ ํฉ๋๋ค.
์ผ๋ฐ ๋ํ
Conversation(๋ํ) ํญ์ ์ฌ์ฉํ์ฌ ํ ์์ฒญ์ ๋ํ ์ผ๋ฐ์ ์ธ ์ฝ๋ฉํธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ผ์ธ ๋๊ธ
Files Changed(ํ์ผ ๋ณ๊ฒฝ๋จ) ํญ์์ ํ ์๋ก ๋ง์ฐ์ค๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ํ๋์ + ์์ด์ฝ์ด ๋ํ๋ฉ๋๋ค. ์ด ์์ด์ฝ์ ํด๋ฆญํ๋ฉด ํน์ ํ์ ์ฝ๋ฉํธ๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ ์์ค์ ์ฝ๋ฉํธ๋ ๊ถ์ฅํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐ์ ์ผ๋ก ์ค๋ช ํ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ํ ๋ณด๊ธฐ์๋ ์ฝ๋ฉํธ๊ฐ ํ์๋ฉ๋๋ค.

๊ฒํ
ํ ์ฝ๋ฉํธ๋ฅผ ์์ฑํ ๋ Start a Review(๊ฒํ ์์)๋ฅผ ์ ํํ ์๋ ์์ต๋๋ค. ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํ ๋ ๋ค์์ ํ ์ฝ๋ฉํธ๋ฅผ ์์ฝ ๋ฉ์์ง๋ก ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค. ๊ฒํ ๋ฅผ ์ ์ถํ ๊ฒฝ์ฐ ์ฝ๋ฉํธ, ์น์ธ ๋๋ ๋ณ๊ฒฝ ์์ฒญ ์ฌ๋ถ๋ฅผ ํ์ํ ์ ์์ต๋๋ค. GitHub์์ ํ ์์ฒญ ๊ฒํ ์ ๋ธ๋ฐ์น ๋ณดํธ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ฉด ํ ์์ฒญ์ ๊ฒํ ๊ฐ ์๋ ๊ฒฝ์ฐ์ ํตํฉ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์๋ํ๋ ํ ์คํธ
CI/CD๋ฅผ ํ๋ก์ ํธ์ ํตํฉํ ๊ฒฝ์ฐ, ํ ์์ฒญ์ ๋ฐ๋ก ๋ณด๊ณ ๋ ํ ์คํธ ์ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ ์คํธ๋ ์์ฝ๊ฒ ๋ง์ถคํํ ์ ์์ต๋๋ค.
๋ฐฐํฌํ๊ธฐ
ํ ๊ตฌ์ฑ์์ด ํ ์์ฒญ์ ๊ฒํ ํ๊ณ ์น์ธํ๊ณ ํ์ํ ํ ์คํธ๊ฐ ํต๊ณผ๋๋ฉด ๋ธ๋์น๋ฅผ ๋ฐฐํฌํ๊ณ ํ๋ก๋์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ, ๊ธฐ์กด ๋ฉ์ธ ๋ธ๋์น๋ฅผ ๋ค์ ํ๋ก๋์ ์ ๋ฐฐํฌํ์ฌ ๋กค๋ฐฑํ ์ ์์ต๋๋ค.
๋ณ๊ฒฝ ์ฌํญ ๋ณํฉํ๊ธฐ
๋ธ๋์น๋ฅผ ๋ณํฉํ ๋ ๊ธฐ๋ฅ ๋ธ๋์น์์ ์ปจํ ์ธ ๋ฐ ๋ด์ญ์ ๊ฐ์ ธ์์ ๋ฉ์ธ ๋ธ๋์น์ ์ปจํ ์ธ ๋ฐ ๊ธฐ๋ก์ ์ถ๊ฐํฉ๋๋ค.
๋ณํฉ์ ๋น ๋ฅด๊ณ ์ฝ์ต๋๋ค.
- GitHub์์ Conversation(๋ํ) ํญ์ ํด๋ฆญํฉ๋๋ค.
-
Merge pull request(ํ ์์ฒญ ๋ณํฉ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ปค๋ฐ ๋ฉ์์ง์ ์์ธ ์ค๋ช
์ ์ถ๊ฐํฉ๋๋ค.

-
Confirm merge(๋ณํฉ ํ์ธ)๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ์ ๋๊ฐ ํ ์์ฒญ์ ๋ณํฉํด์ผ ํ๋์ง์ ๋ํ ๊ท์น์ ์๋ฆฝํด์ผ ํฉ๋๋ค. ๊ท์น์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค.
- ๋ณํฉ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ฏ๋ก ํ ์์ฒญ์ ๋ง๋ ์ฌ๋์ด ๋ณํฉํด์ผ ํฉ๋๋ค.
- ํ๋ก์ ํธ ํ ๋ด์ ํ ์ฌ๋์ ๋ฐฐ์ ํฉ๋๋ค. ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋์ง๋ง ์์
์๋๊ฐ ๋๋ฆด ์ ์์ต๋๋ค.
- ํ ์์ฒญ์ ์์ฑํ ์ฌ๋ ์ด์ธ์ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ๋ณํฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ ๊ฑด ์ด์์ ๊ฒํ ๊ฐ ์ค์๋ฉ๋๋ค.
๋ชจ๋ ๋๊ธฐํ ์ํ๋ก ์ ์งํ๊ธฐ
ํ ์์ฒญ์ ๋ณํฉํ ํ GitHub์์ ๋ธ๋์น๋ฅผ ์ญ์ ํฉ๋๋ค. ์ญ์ ํ๋ ค๋ฉด ํ ์์ฒญ ํ๋ฉด์์ Delete branch(๋ธ๋์น ์ญ์ )๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ทธ๋ฌ๋ GitHub์์ ๋ณํฉ ๋ฐ ์ญ์ ๋ฅผ ํ๋๋ผ๋ ์ ์ฅ์ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ด ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋์ง๋ ์์ต๋๋ค. ๋ช ๋ น ํ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋์๊ฐ์ ๋ชจ๋ ๊ฒ์ ๋๊ธฐํํฉ๋๋ค.
๋จผ์ GitHub์์ ๋ณ๊ฒฝํ ๋ด์ฉ์ ์ ์ฅ์ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ผ๋ก ๊ฐ์ ธ์์ผ ํฉ๋๋ค.
- ๋ค์์ ์
๋ ฅํ์ฌ ๊ธฐ๋ณธ ๋ธ๋์น๋ก ๋ค์ ์ ํํฉ๋๋ค.
git checkout main
- ๋ค์์ ์
๋ ฅํ์ฌ GitHub์์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒ์ํฉ๋๋ค.
git pull
