[1-1] git ํ์ ์์
[1-2] ๊ธฐ๋ณธ์ ์ธ branch ๋ช ๋ น์ด ์ด์ ๋ฆฌ
[1-3] git ์ปค๋ฐ ์ปจ๋ฒค์
1๏ธโฃ ๋ผํผ์งํ ๋ฆฌ ์์ฑํ๊ธฐ
2๏ธโฃ ๊ณต๋ ์์ ์(ํ์) ์ด๋
3๏ธโฃ Projects ๊ธฐ๋ฅ์ ์ด์ฉํ ์นธ๋ฐ ๋ณด๋ ์ค์
Github ๋ฉ๋ด ์ค Projects๋ก ์ด๋
์๋จ์ Create a project ๋ฅผ ๋๋ฅด์๋ฉด ์นธ๋ฐ ๋ณด๋๋ฅผ ์์ฑํ๋ ํ๋ฉด์ผ๋ก ์ด๋ํ๊ฒ ๋๋ค. ๊ฐ ์ ๋ ฅ์นธ์ ์ฑ์์ฃผ๋ฉด๋๋ค.
4๏ธโฃ Git-flow ์ ๋ต
master
: ์ ํ์ผ๋ก ์ถ์๋ ์ ์๋ ๋ธ๋์น
develop
: ๋ค์ ์ถ์ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
feature
: ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
release
: ์ด๋ฒ ์ถ์ ๋ฒ์ ์ ์ค๋นํ๋ ๋ธ๋์น
hotfix
: ์ถ์ ๋ฒ์ ์์ ๋ฐ์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ธ๋์น
๐ก git-flow๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง๋ค
- ์ฒ์์๋
master
์develop
๋ธ๋์น๊ฐ ์กด์ฌํ๋ค.develop
๋ธ๋์น๋master
์์๋ถํฐ ์์๋ ๋ธ๋์น์ด๋ค.develop
๋ธ๋์น์์๋ ์์๋ก ๋ฒ๊ทธ๋ฅผ ์์ ํ ์ปค๋ฐ๋ค์ด ์ถ๊ฐ๋๋ค.- ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ ์์ ์ด ์๋ ๊ฒฝ์ฐ
develop
๋ธ๋์น์์feature
๋ธ๋์น๋ฅผ ์์ฑํ๋ค.feature
๋ธ๋์น๋ ์ธ์ ๋develop
๋ธ๋์น์์๋ถํฐ ์์ํ๊ฒ ๋๋ค.- ๊ธฐ๋ฅ ์ถ๊ฐ ์์ ์ด ์๋ฃ๋์๋ค๋ฉด
feature
๋ธ๋์น๋develop
๋ธ๋์น๋ก merge ๋๋ค.develop
์ ์ด๋ฒ ๋ฒ์ ์ ํฌํจ๋๋ ๋ชจ๋ ๊ธฐ๋ฅ์ด merge ๋์๋ค๋ฉด QA๋ฅผ ์ํดdevelop
๋ธ๋์น์์๋ถํฐrelease
๋ธ๋์น๋ฅผ ์์ฑํ๋ค.- QA๋ฅผ ์งํํ๋ฉด์ ๋ฐ์ํ ๋ฒ๊ทธ๋ค์
release
๋ธ๋์น์ ์์ ๋๋ค.- QA๋ฅผ ๋ฌด์ฌํ ํต๊ณผํ๋ค๋ฉด
release
๋ธ๋์น๋ฅผmaster
์develop
๋ธ๋์น๋ก merge ํ๋ค.- ๋ง์ง๋ง์ผ๋ก ์ถ์๋
master
๋ธ๋์น์์ ๋ฒ์ ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ค.
branch ์์ฑ ๋ฐ ์์ฑ๋ branch๋ก ์ ํ
git checkout -b <branch ์ด๋ฆ>
ํ์ฌ ์์ ์ ํ์ผ๊ณผ ์ฐ๊ฒฐ๋ branch ๋ชฉ๋ก
git branch
branch์ ํ
git checkout <branch ์ด๋ฆ>
branch ์์ฑ
git branch <branch ์ด๋ฆ>
branch ์ญ์
git branch -d <branch ์ด๋ฆ>
branch ๊ฐ์ ์ญ์
git branch -D <branch ์ด๋ฆ>
branch์ ์ฝ๋push
git push origin <branch ์ด๋ฆ>
mergeํ๋ ๋ฒ
git checkout <branch ์ด๋ฆ> git merge <branch ์ด๋ฆ>
git checkout master git merge A
git checkout B git merge A
branch ๋ผ๋ฆฌ ๋น๊ต
git diff <branch ์ด๋ฆ> <branch ์ด๋ฆ
git diff master A
๐ก ๊น ๋ด๋ ค๋ฐ๊ณ ํ๋ฆฌํ์คํธํ๋ ์์
์์ ์
1๏ธโฃ ํ์ฌ ๋ก์ปฌ ์ ์ฅ์์ ๋ค๋ฅธ ๋ฆฌ๋ชจํธ ์ ์ฅ์๋ฅผ ์ถ๊ฐํ๋ ๋ช ๋ น์ด
git remote add upstream https://github.com/code-bootcamp/holidays_client.git โ ์ฃผ์๋ ํ์ฌ ๋ ํ์งํ ๋ฆฌ์ code๋ถ๋ถ์ ๋ณต๋ถํ๋ฉด ๋๋ค.
์์ ์
1๏ธโฃ feature ๋ธ๋ฐ์น ์์ฑ
git checkout -b feature-issue5 โ ์ฌ๊ธฐ์ issue5๋ ๋์ issue ์์๋ฅผ ์์ฑํ๋ฉด ๋๋ค.(feature-issue5๋ถ๋ถ์ด ๋งค์ผ ๋ฐ๋๋ค.)
2๏ธโฃ ํ์ฌ ๋ธ๋ฐ์น ํ์ธ
git branch
์์ ์ข ๋ฃ ์
1๏ธโฃ ํ์ฌ ์์ ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ git์ staging area์ ์ถ๊ฐ
git add .
2๏ธโฃ ์ปค๋ฐ ์ปจ๋ฒค์ ์ ์ฉ
git commit -m โ์ปค๋ฐ ๋ด์ฉโ โ โ์ปค๋ฐ ์ปจ๋ฒค์ โ ์ ์ฉํด์ ํ๊ธฐ: ํ์๋ค๋ผ๋ฆฌ ์ ํ๊ธฐ (์ปค๋ฐ ๋ด์ฉ ์ ์์ฑํด์ ์ปค๋ฐํ๋๊ฒ ์ข์
3๏ธโฃ origin์ผ๋ก ํธ์ฌ
git push origin feature-issue5 โ (origin์ผ๋ก ํธ์ฌํด์ผ ํ๋ค, ์๊น ๋ง๋ feature-issue5๋ธ๋์น๋ฅผ ์์ฑํด์ผ ํ๋ค.)
4๏ธโฃ ๊นํ๋ธ: forkํ๋ ๋ด ๋ ํ์งํ ๋ฆฌ๋ก ๋ค์ด๊ฐ์ ํ๋ฆฌํ์คํธ ์์ฒญํ๊ธฐ
๋ค์ ์์ ์์ ์
1๏ธโฃ ๋ด๋ ค๋ฐ์ ๋ธ๋ฐ์น ํ์ธ
git checkout master (๋ง์คํฐ๋ก ๋์ด์๋์ง ๊ผญ ํ์ธ)
2๏ธโฃ ๋ด๋ ค ๋ฐ๊ธฐ
git pull upstream develop โ ์ด๋ ๊ฒ pull์ ํ๋ฉด ๋! (develop์ธ์ง developer์ธ์ง ํ์ธํ๋ ค๋ฉด git branch -a๋ก ํ์ธํ๊ธฐ)
*๏ธโฃ Commit Type
feat
: ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
fix
: ๋ฒ๊ทธ ์์
docs
: ๋ฌธ์ ์์
style
: ์ฝ๋ ํฌ๋งทํ
, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ
refactor
: ์ฝ๋ ๋ฆฌํํ ๋ง
test
: ํ
์คํธ ์ฝ๋, ๋ฆฌํํ ๋ง ํ
์คํธ ์ฝ๋ ์ถ๊ฐ
chore
: ๋น๋ ์
๋ฌด ์์ , ํจํค์ง ๋งค๋์ ์์
*๏ธโฃ Subject Rule
*๏ธโฃ ์ปค๋ฐ ํ ํ๋ฆฟ
# ์ ๋ชฉ์ ์ต๋ 50๊ธ์๊น์ง ์๋์ ์์ฑ: ex) Feat: Add Key mapping
# ๋ณธ๋ฌธ์ ์๋์ ์์ฑ
# ๊ผฌ๋ฆฟ๋ง์ ์๋์ ์์ฑ: ex) Github issue #23
# --- COMMIT END ---
# <ํ์
> ๋ฆฌ์คํธ
# feat : ๊ธฐ๋ฅ (์๋ก์ด ๊ธฐ๋ฅ)
# fix : ๋ฒ๊ทธ (๋ฒ๊ทธ ์์ )
# refactor : ๋ฆฌํฉํ ๋ง
# design : CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ
# comment : ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ
# style : ์คํ์ผ (์ฝ๋ ํ์, ์ธ๋ฏธ์ฝ๋ก ์ถ๊ฐ: ๋น์ฆ๋์ค ๋ก์ง์ ๋ณ๊ฒฝ ์์)
# docs : ๋ฌธ์ ์์ (๋ฌธ์ ์ถ๊ฐ, ์์ , ์ญ์ , README)
# test : ํ
์คํธ (ํ
์คํธ ์ฝ๋ ์ถ๊ฐ, ์์ , ์ญ์ : ๋น์ฆ๋์ค ๋ก์ง์ ๋ณ๊ฒฝ ์์)
# chore : ๊ธฐํ ๋ณ๊ฒฝ์ฌํญ (๋น๋ ์คํฌ๋ฆฝํธ ์์ , assets, ํจํค์ง ๋งค๋์ ๋ฑ)
# init : ์ด๊ธฐ ์์ฑ
# rename : ํ์ผ ํน์ ํด๋๋ช
์ ์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ์์
๋ง ํ ๊ฒฝ์ฐ
# remove : ํ์ผ์ ์ญ์ ํ๋ ์์
๋ง ์ํํ ๊ฒฝ์ฐ
# ------------------
# ์ ๋ชฉ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก
# ์ ๋ชฉ์ ๋ช
๋ น๋ฌธ์ผ๋ก
# ์ ๋ชฉ ๋์ ๋ง์นจํ(.) ๊ธ์ง
# ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ ํ ์ค ๋์ ๋ถ๋ฆฌํ๊ธฐ
# ๋ณธ๋ฌธ์ "์ด๋ป๊ฒ" ๋ณด๋ค "๋ฌด์์", "์"๋ฅผ ์ค๋ช
ํ๋ค.
# ๋ณธ๋ฌธ์ ์ฌ๋ฌ์ค์ ๋ฉ์์ง๋ฅผ ์์ฑํ ๋ "-"๋ก ๊ตฌ๋ถ
# ------------------
# <๊ผฌ๋ฆฌ๋ง>
# ํ์๊ฐ ์๋ optioanl
# Fixes :์ด์ ์์ ์ค (์์ง ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ)
# Resolves : ์ด์ ํด๊ฒฐํ์ ๋ ์ฌ์ฉ
# Ref : ์ฐธ๊ณ ํ ์ด์๊ฐ ์์ ๋ ์ฌ์ฉ
# Related to : ํด๋น ์ปค๋ฐ์ ๊ด๋ จ๋ ์ด์๋ฒํธ (์์ง ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ)
# ex) Fixes: #47 Related to: #32, #21
*๏ธโฃ ์ปค๋ฐ ์์
$ git commit
์ ํ ํ๋ฆฟ์ ๊ณต๋ฐฑ 3์ค์ด ์ฐ๋ฆฌ๊ฐ ์ฑ์๋ฃ์ line์ด๋ค.
signin, signup ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค๊ณ ๊ฐ์ ํด๋ณด์.
์ปค๋ฐ ๋ฉ์์ง๋ ์๋์ ๊ฐ์ ๊ฒ์ด๋ค.
Feat: Add signin, signup
ํ์๊ฐ์
๊ธฐ๋ฅ, ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ(์์๋ฅผ ์ํด ๊ฐ๋จํ ์์ฑ)
Resolves: #1
ํ ํ๋ฆฟ์๋
์ฒซ๋ฒ์งธ ์ค์ Feat: Add signin, signup
๋๋ฒ์งธ ์ค์ signup๊ณผ signin์ ์ด๋์ ์ถ๊ฐํ๊ณ , ์ ์ถ๊ฐํ๋์ง์ ๋ํ ๊ธ์ ๋จ๊ธด๋ค.(์๋ต ๊ฐ๋ฅ)
์ธ๋ฒ์งธ ์ค์ issue์ ๋ํ ๋ถ๋ถ์ ์์ง๋ง ์ด์1์ ํด๊ฒฐํ๋ค๊ณ ๊ฐ์ ํ์(์๋ต ๊ฐ๋ฅ)
wq๋ก ์ ์ฅํ๊ณ ๋๊ฐ๋ฉด ์ปค๋ฐ์ด ์๋์ผ๋ก ๋๋ค.(vim editor์)
์ด๋ฐ์์ผ๋ก ์ปค๋ฐ์ ํ๊ฒ ๋๋ฉด, ์ฝ์๋๋ก signin, signup๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์์ ๋ฉ์์ง๋ฅผ ํตํด ์ง๊ด์ ์ผ๋ก ์ ์ ์๊ฒ ๋๋ค.
*๏ธโฃ ํ ํ๋ฆฟ์ ์ด๋ป๊ฒ ์ ์ฉ์ ์ํค๋๊ฐ?
1.ย ๋ณธ์ธ์ด ์ํ๋ ๊ฒฝ๋ก์ย gitmessage.txt
ย ํ์ผ์ ์์ฑํ๋ค.
2.ย ๋ด์ฉ์ ์ ํ ํ๋ฆฟ ๋ด์ฉ์ ๋ฃ๋๋ค.(#์ ์ฃผ์์)
3.ย ํฐ๋ฏธ๋์ ๋ช ๋ น์ ์ ๋ ฅํ๋ค.
$ git config --global commit.template C:\.gitmessage.txt
ย (์์๋ฅผ ์ํด C:\ ๊ฒฝ๋ก๋ฅผ ์ฃผ์๊ณ ์ค์ ๋ก๋ ๋ณธ์ธ ๊ฒฝ๋ก์๋ค๊ฐ!)
์ด ์ค์ ์ ํตํด ์์ผ๋กย $ git commit
ย ๋ช
๋ น์ด๋ฅผ ํตํด ์์ ์ ๋ง๋ค์๋ vim์ ๋ฉ์์ง๊ฐ ๋ณด์ผ ๊ฒ์ด๋ค.
๐ฉ ์ฐธ๊ณ ์๋ฃ