[GitHub & git] ํ์ ๋ฐฉ๋ฒ
ํ์ฅ (์ด๊ธฐ ์ธํ )
1. ์์ ํ ํด๋ ์์ฑ
2. ์์ ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ
git init // ํด๋น ํด๋๋ก ๋ค์ด๊ฐ์ (initialize empty Git repository in ~~~ ์ด๋ผ๊ณ ๋์ค๋ฉด ์ฑ๊ณต)
ls -al // .git ์ด๋ผ๋ ํด๋๊ฐ ์์ผ๋ฉด ํด๋น ํ๋ก์ ํธ์์ ๋ ์ด์ git init ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ ํ์๊ฐ ์์
3. GitHub ๋ ํฌ์งํ ๋ฆฌ(Repository) ์์ฑ
1.

2.

3.

4. ์๊ฒฉ ์ ์ฅ์์ commit, push ํ๊ธฐ
git remote add origin ๋ณต์ฌํ ์๊ฒฉ์ ์ฅ์ URL // ๊ฐ๋จํ๊ฒ pushํ๊ฒ ์ํด ๋ณต์ฌํ ์ฃผ์๋ฅผ origin์ด๋ผ๊ณ ๋ช
๋ช
ํ๊ฒ ๋ค!
git branch -M main // ๊ธฐ๋ณธ ๋ธ๋์น ์ด๋ฆ์ master์์ main์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ๋ช
๋ น์ด
git push -u origin master
git add .
git commit -m "์ปค๋ฐ ๋ฉ์ธ์ง"
git push origin main
5. dev ๋ธ๋์น ์์ฑ
git switch -c dev // ๋ก์ปฌ์์ dev ๋ธ๋์น ์์ฑ (๋๋ git checkout -b dev)
git push origin dev // github์๋ ๋ฐ์
6. Github์์ dev ๋ธ๋์น๋ฅผ default๋ก ์ค์
- main ๋ธ๋์น๋ ๋ฐฐํฌ์ฉ, dev ๋ธ๋์น๋ ๋ฐฐํฌ ์ ํฉ์น๊ธฐ์ฉ!
- Settings → Default Branch ์์ ์๋ ๋ฒํผ ํด๋ฆญ
7. ํ์๋ค์ ๋ํ์ github์ collaborator(ํ๋ ฅ์)๋ก ๋ฑ๋กํ๊ธฐ
- github ๋ ํฌ์งํ ๋ฆฌ - Settings - Collaborators - Add people ํด๋ฆญ
8. username ์ด๋ email ๋ฑ์ ์ด์ฉํ์ฌ ํ์๋ค์ ์ด๋
ํ์
1. ์ด๋ฉ์ผ ์ด๋์ฅ ์๋ฝ
2. ๋ณธ์ธ ์ปดํจํฐ์ ํด๋ ์์ฑ
3. ํด๋น ํด๋๋ก ์ด๋ ํ clone ํ๊ธฐ
git clone <github ์ฃผ์>
4. ๊ธฐ๋ฅ ๋ธ๋์น ์์ฑ ๋ฐ ๊ธฐ๋ฅ ๊ฐ๋ฐ
git switch -c ๊ธฐ๋ฅ๋ธ๋์น๋ช
// ํ์ฌ ํด๋ ์์น ํ์ธ ์ํด์ผ๋จ
git branch // ํ์ฌ ๋ธ๋์น ํ์ธ
5. github์ ๋ณ๊ฒฝ๋ ์ฝ๋ ์ ๋ก๋
// ํ๊ธฐ ์ ์ branch๋ช
๋ค์ ํ์ธํด๋ณด๊ธฐ (dev๋ main์ ๋ฐ๋ก ์ฌ๋ฆฌ๋ฉด ์๋จ.)
git add .
git commit -m "<๋ฉ์ธ์ง>"
git push origin <๋ธ๋์น๋ช
>
6. Pull requests ์์ฑ ํ ๋ฆฌ๋ทฐ ์์ฒญ ๋ฐ ์น์ธ ๋ฐ๊ธฐ
- Pull request ์์ฑ
1. Compare & pull request ํด๋ฆญ

2. base ๋ธ๋์น(ex. dev) ๋ฐ ๊ธฐ๋ฅ ๋ธ๋์น(ex. feature/signup) ์ด๋ฆ ํ์ธ & Pull request ์์ฑ

3. Pull requests ํญ์์ ํ์ธ

๐ซ Conflict ๋ฐ์์ merge ๋ถ๊ฐ๋ฅ
- ๋ฆฌ๋ทฐ ์์ฒญ
๐ก ๋ฆฌ๋ทฐ ์์ฒญํ๊ธฐ
- Pull requests ํญ์ Reviewers์์ ๋ฆฌ๋ทฐ ์์ฒญ

๐ก ๋ฆฌ๋ทฐ ๋ต๋ณํ๊ธฐ
- File changed๋ก ์ด๋ ํ ๋ฆฌ๋ทฐํ ๋ถ๋ถ ์ ํ

- ๋ฆฌ๋ทฐ ์์ฑ ๋ฐ Start a review ํด๋ฆญ

- Finish your review ํด๋ฆญ ๋ฐ Comment(์ฝ๋ฉํธ), Approve(๋ณ๊ฒฝ ์น์ธ), Request Changes(๋ณ๊ฒฝ ์์ฒญ) ์ค ํ๋ ์ ํ ํ Submit review ํด๋ฆญ

- ๊ฒฐ๊ณผ

๐ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ฐ๋ฐ ์
- ๋ง์ฝ ๋๊ตฐ๊ฐ dev์ merge๋ฅผ ํ ์ํ๋ผ๋ฉด ๋ก์ปฌ(๋ด ์ปดํจํฐ)์์ ๋จผ์ ํ์ธํด๋ณด๊ณ pr์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ์ข๋ค.
1. ๋ด ๋ก์ปฌ์ dev์๋ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ์ (dev branch ์ฝ๋๋ฅผ pull ํด์ ๊ฐ์ ธ์ค๊ธฐ)
git checkout dev // dev ๋ธ๋์น๋ก ์ด๋ (๋๋ git switch dev)
git pull origin dev // ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์๋ dev๋ฅผ pull ๋ฐ๊ณ
git checkout ์์
๋ธ๋์น // ์์
ํ๋ ๋ธ๋์น๋ก ์ด๋
git rebase -i dev // dev ๋ธ๋์น๋ฅผ ๊ธฐ์ค์ผ๋ก rebase๋ฅผ ์งํํ๊ฒ ๋ค๋ ๋ป
git rebase๋?
- ๋ ๊ฐ์ ๊ณตํต Base๋ฅผ ๊ฐ์ง branch์์ ํ branch์ Base๋ฅผ ๋ค๋ฅธ branch์ ์ต์ ์ปค๋ฐ์ผ๋ก branch์ Base๋ฅผ ์ฎ๊ธฐ๋ ์์

2. ๋น์๋ํฐ๊ฐ ๋จ๋ฉด pick๊ณผ squash๋ฅผ ์ ํ๊ณ ๋๊ฐ๋ค.
3. ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ฐ๋ณต
- ๊ธฐ๋ฅ ๋ธ๋์น ์์ฑ ๋ฐ ์ฝ๋ ์์ฑ
- git add, commit, push
- pull request ์์ฑ ๋ฐ ์ฝ๋ ๋ฆฌ๋ทฐ
- ๋ด ๋ก์ปฌ์์ ์ถฉ๋ ํด๊ฒฐ ๋ฐ ํ ์คํธ
- ์ฝ๋ ์ ๋ก๋ ๋ฐ merge
๐ git status
- ์ ์ฅ์ ์์ ์๋ ํ์ผ๋ค์ ์ํ ์ ๋ณด๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ
๐ git log
- ์ ์ฅ ๋ด์ญ์ ํ์ธํ๋ ๋ช ๋ น์ด