- GitHub ๊ณ์ ๋ง๋ค๊ธฐ
- Sourcetree ๋ฅผ ์ค์น
- ์์ ์ ๋ฐ๋์ ํฐ๋ฏธ๋์์ ์งํํฉ๋๋ค. Sourcetree์ ๊ฐ์ GUI๋๊ตฌ๋ ์ค๊ฐ์ ๊ณผ์ ์ ์๋ตํฉ๋๋ค.
- ๊ทธ๋ฌ๋ ๋ญ๊ฐ๋ฅผ ํ ๋๋ง๋ค Sourcetree๋ฅผ ๊ณ์ ๋ณด์๋ฉด Git์ ๋ํด ์ ์ ์๊ณ , ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๊ณ ์๋์ง๋ ์ ์ ์์ต๋๋ค.
- Windows
- PowerShell ์ ๊ณต๋ถํ๊ณ git ๋ช ๋ น์ด ์ํ์ PowerShell ์์ ์งํ
- Mac
- iterm ์ค์น ํ iterm ํฐ๋ฏธ๋์์ ์งํ
git initgit clone <์๊ฒฉ ์ ์ฅ์ ์ฃผ์>Sourcetree๋ฅผ ์คํํด ๋ฐฉ๊ธ ๋ง๋ค๊ฑฐ๋ ๊ฐ์ ธ์จ ํด๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๋ญ๊ฐ๋ฅผ ํ ๋๋ง๋ค Sourcetree๋ฅผ ๊ณ์ ๋ณด์๋ฉด Git์ ๋ํด ์ ์ ์๊ณ , ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๊ณ ์๋์ง๋ ์ ์ ์์ต๋๋ค.
git remotegit remote -v- upstream - ๊ณต์ฉ repository(๋ณดํต ํ repo)
- origin - ๊ณต์ฉ repository ๋ฅผ ๋ด ๊ณ์ ์ forkํ repository
์ฃผ์) clone์ผ๋ก ์๊ฒฉ ์ ์ฅ์๋ฅผ ๊ฐ์ ธ์ค๋ฉด origin ์๊ฒฉ ์ ์ฅ์๊ฐ ์ด๋ฏธ ์ถ๊ฐ๋ ์ํ์ ๋๋ค.
์๋๋ git init ํ ์๋์ผ๋ก ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
git remote add origin <๋ด ์๊ฒฉ ์ ์ฅ์ ์ฃผ์>
git fetch origingit remote add upstream <๊ณต์ฉ ์๊ฒฉ ์ ์ฅ์ ์ฃผ์>
git fetch upstreamgit clone <fork๋ ๋ด GitHub repository ์ฃผ์>
git remote add upstream <๊ณต์ฉ ์๊ฒฉ ์ ์ฅ์ ์ฃผ์>
git remote -vupstream๊ณผ origin์ด ์๋์ ๊ฐ์์ง ํ์ธํฉ๋๋ค.
- upstream - ๊ณต์ฉ repository(๋ณดํต ํ repo)
- origin - ๊ณต์ฉ repository ๋ฅผ ๋ด ๊ณ์ ์ forkํ repository
git status
(git status๋ ์์๋ก ํด์ฃผ๋ ๊ฒ ์ข์ต๋๋ค. ๋ด๊ฐ ์๋ํ ์์ ์ด ์ํ ๋๋์ง ์์๋ก ํ์ธํฉ๋๋ค.)
git checkout -b <๋ธ๋์น ์ด๋ฆ> upstream/mainupstream/main๋ ๋ถ์ฌ์ ์ฐ๊ณ , ๊ฐ์ด๋ฐ ์ฌ๋์(/)๊ฐ ๋ค์ด๊ฐ๋๋ค.
๋ธ๋์น ์ด๋ฆ์ ์์ ํ ๋ด์ฉ์ ํํํด์ผ ํฉ๋๋ค. ex) login-oauth-apply
git fetch upstream main
git rebase upstream/main์ํ๋ ์์ ์ ์ด ์์ ์ ํฉ๋๋ค.
๋ญ๊ฐ ๋ฐ๋ ์ ์ ์ถ๊ฐํฉ๋๋ค.
์ ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒ ์๋๋ผ, ํ์ผ ์ถ๊ฐ/๋ณ๊ฒฝ/์ญ์ ๋ โ๋ฐ๋ ์ โ์ ์ถ๊ฐํฉ๋๋ค.
git add .๋ฐฉ๊ธ ์ถ๊ฐํ ๋ฐ๋ ์ ์ ์ปค๋ฐํฉ๋๋ค.
๊ฐ๋ฅํ๋ฉด ๋ฉ์์ง๋ฅผ ์ฐ๋ฆฌ๊ฐ ๋์ค์ ์ฐพ์๋ณผ ์ ์๋ ํํ๋ก ์๋๋ค.
git commit๋ฐ๋์ ์์งํ๊ณ ์งํค๋ ค๊ณ ๋ ธ๋ ฅํฉ์๋ค.
์ข์ git ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ 8๊ฐ์ง ์ฝ์
Commit Message Style Guide For Git
git commit ์๋ํฐ๋ vi ์๋ํฐ๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋๋ค.
์ฃผ์) git commit -m "message" ๋ ์ฐ์ง ๋ง์ธ์. -m์ anti pattern์ ๋๋ค.
Vi ์๋ํฐ๋ฅผ ์ด์ฉํ ์ปค๋ฐ ๋ฉ์์ง ์์ฑ ๋ฐฉ๋ฒ
git push origin <๋ธ๋์น ์ด๋ฆ>origin๊ณผ <๋ธ๋์น ์ด๋ฆ> ์ฌ์ด์ ๊ณต๋ฐฑ์ด ๋ค์ด๊ฐ๋๋ค.
GitHub์์ New Pull Request๋ฅผ ํฉ๋๋ค.
Pull Request๋ฅผ ํ์ง๋ง ์์ ํ๊ณ ์ถ์ ๋๊ฐ ์์ต๋๋ค. ์ฝ๋ ๋ฆฌ๋ทฐ ๋ด์ฉ์ ๋ณด๊ณ ๋ฐ์ํ๊ธฐ ์ํด ๊ณ ์น ๋๊ฐ ๋ง์๋ฐ, ํด๋น ๋ธ๋์น์ ๊ฐ์ Commit์ ์ถ๊ฐํ๊ณ Push๋ง ํ๋ฉด ๋ฉ๋๋ค.
git checkout <๋ธ๋์น ์ด๋ฆ>๋ณ๊ฒฝ ์์ ์ ์ด ์์ ์ ํฉ๋๋ค.
๋ญ๊ฐ ๋ฐ๋ ์ ์ ์ถ๊ฐํฉ๋๋ค.
์ ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒ ์๋๋ผ, ํ์ผ ์ถ๊ฐ/๋ณ๊ฒฝ/์ญ์ ๋ โ๋ฐ๋ ์ โ์ ์ถ๊ฐํฉ๋๋ค.
git add .๋ฐฉ๊ธ ์ถ๊ฐํ ๋ฐ๋ ์ ์ ์ปค๋ฐํฉ๋๋ค.
๊ฐ๋ฅํ๋ฉด ๋ฉ์์ง๋ฅผ ์ฐ๋ฆฌ๊ฐ ๋์ค์ ์ฐพ์๋ณผ ์ ์๋ ํํ๋ก ์๋๋ค.
git commitgit push origin <๋ธ๋์น ์ด๋ฆ>๋ญ๊ฐ ์๋ก์ด ์์ ์ ํ์ง ์์๋ Pull Request๊ฐ ๋ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
git checkout maingit fetch upstream main
git rebase upstream/mainorigin ์๊ฒฉ ์ ์ฅ์์ main ๋ธ๋์น๋ฅผ ์ฌ๋ ค๋ณด๊ธฐ (ํ์๋ ์๋์ง๋ง ๊ธฐ๋ถ์ด ์ข์์ง)
git push origin main๋ด ์ปดํจํฐ์ ์๋ ๋ธ๋์น ์ค Merge๋ ๊ฒ ๋ณด๊ธฐ
์ด ๋ชฉ๋ก์ main๋ ํฌํจ๋๋ค๋ ์ ์ ์ฃผ์!
git branch --merge๋ด ์ปดํจํฐ์ ์๊ฒฉ ์ ์ฅ์์ ์๋ ๋ธ๋์น ์ค Merge๋ ๊ฒ ๋ณด๊ธฐ
์ด ๋ชฉ๋ก์ main๋ ํฌํจ๋๋ค๋ ์ ์ ์ฃผ์!
git branch -a --mergegit branch -d <๋ธ๋์น ์ด๋ฆ>git branch -D <๋ธ๋์น ์ด๋ฆ>git push origin :<๋ธ๋์น ์ด๋ฆ>https://github.com/CodeSoom/git-training
์ repo๋ฅผ ๊ณต์ฉ repository๋ก ํ์ฌ
๊ฐ์ ์ด๋์
๋ก ๋ง๋ ๋ฌธ์ ํ์ผ(e.g. csh.md)์ ์ถ๊ฐํ์ฌ
Pull Request๋ฅผ ๋ ๋ ค๋ด ๋๋ค.
"Hello world!"





