Git Branch
1. branch ๊ด๋ จ ๋ช
๋ น์ด
Git ๋ธ๋์น๋ฅผ ์ํด root-commit์ ๋ฐ์์ํค๊ณ ์งํํ์ธ์.
๋ธ๋์น ์์ฑ
(master) $ git branch {๋ธ๋์น๋ช }
๋ธ๋์น ์ด๋
(master) $ git checkout {๋ธ๋์น๋ช }
๋ธ๋์น ์์ฑ ๋ฐ ์ด๋
(master) $ git checkout -b {๋ธ๋์น๋ช }
๋ธ๋์น ์ญ์
(master) $ git branch -d {๋ธ๋์น๋ช }
๋ธ๋์น ๋ชฉ๋ก
(master) $ git branch
๋ธ๋์น ๋ณํฉ
(master) $ git merge {๋ธ๋์น๋ช }
master ๋ธ๋์น์์ {๋ธ๋์น๋ช }์ ๋ณํฉ
2. branch ๋ณํฉ ์๋๋ฆฌ์ค
branch ๊ด๋ จ๋ ๋ช ๋ น์ด๋ ๊ฐ๋จํ๋ค.
๋ค์ํ ์๋๋ฆฌ์ค ์์์ ์ด๋ค ์ํฉ์ธ์ง ํ์ ํ๊ณ ์์ ๋กญ๊ฒ ํ์ฉํ ์ ์์ด์ผ ํ๋ค.
์ํฉ 1. fast-foward
fast-foward๋ feature ๋ธ๋์น ์์ฑ๋ ์ดํ master ๋ธ๋์น์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ ์ํฉ
feature/crud branch ์์ฑ ๋ฐ ์ด๋
git branch feature/crud git checkout feature/crud
ํน์
git checkout -b feature/crud
์์ ์๋ฃ ํ commit
์์์ ํ์ผ์ ๋ง๋ค๊ณ , commit
add
,commit
master ์ด๋
(feature/crud) $ git checkout master Switched to branch 'master' (master) $
master์ ๋ณํฉ
$ git merge feature/crud Updating d66ff92..f219c8c # Fast-forward!!! Fast-forward crud.html | 0 urls.py | 1 + views.py | 1 + 3 files changed, 2 insertions(+) create mode 100644 crud.html create mode 100644 urls.py create mode 100644 views.py
๊ฒฐ๊ณผ -> fast-foward
$ git log --oneline f219c8c (HEAD -> master, feature/crud) Complete CRUD) d66ff92 Init
branch ์ญ์
git branch -d feature/crud
์ํฉ 2. merge commit
์๋ก ๋ค๋ฅธ ์ด๋ ฅ(commit)์ ๋ณํฉ(merge)ํ๋ ๊ณผ์ ์์ ๋ค๋ฅธ ํ์ผ์ด ์์ ๋์ด ์๋ ์ํฉ
git์ด auto merging์ ์งํํ๊ณ , commit์ด ๋ฐ์๋๋ค.
feature/signout branch ์์ฑ ๋ฐ ์ด๋
(master) $ git checkout -b feature/signout Switched to a new branch 'feature/signout' (feature/signout) $
์์ ์๋ฃ ํ commit
touch signout.txt git add . git commit -m 'Complete'
master ์ด๋
(feature/signout) $ git checkout master Switched to branch 'master' (master) $
master์ ์ถ๊ฐ commit ์ด ๋ฐ์์ํค๊ธฐ!!
๋ค๋ฅธ ํ์ผ์ ์์ ํน์ ์์ฑํ์ธ์!
master์ ๋ณํฉ
$ git merge feature/signout Merge made by the 'recursive' strategy. signout.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 signout.txt
๊ฒฐ๊ณผ -> ์๋์ผ๋ก merge commit ๋ฐ์
๊ทธ๋ํ ํ์ธํ๊ธฐ
$ git log --oneline --graph * 2125d5b (HEAD -> master) Merge branch 'feature/signout' |\ | * fb74094 (feature/signout) Complete signout * | 75f0abd README @ master |/ * f219c8c Complete CRUD) * d66ff92 Init
$ git log -1 --oneline 2125d5b (HEAD -> master) Merge branch 'feature/signout'
branch ์ญ์
$ git branch -d feature/signout Deleted branch feature/signout (was fb74094).
์ํฉ 3. merge commit ์ถฉ๋
์๋ก ๋ค๋ฅธ ์ด๋ ฅ(commit)์ ๋ณํฉ(merge)ํ๋ ๊ณผ์ ์์ ๊ฐ์ ํ์ผ์ ๋์ผํ ๋ถ๋ถ์ด ์์ ๋์ด ์๋ ์ํฉ
git์ด auto merging์ ํ์ง ๋ชปํ๊ณ , ์ถฉ๋ ๋ฉ์์ง๊ฐ ๋ฌ๋ค.
ํด๋น ํ์ผ์ ์์น์ ํ์คํ์์ ๋ฐ๋ผ ํ์ ํด์ค๋ค.
์ํ๋ ํํ์ ์ฝ๋๋ก ์ง์ ์์ ์ ํ๊ณ ์ง์ commit์ ๋ฐ์ ์์ผ์ผ ํ๋ค.
feature/signup branch ์์ฑ ๋ฐ ์ด๋
(master) $ git checkout -b feature/signup Switched to a new branch 'feature/signup'
์์ ์๋ฃ ํ commit
add
,commit
master ์ด๋
(feature/signup) $ git checkout master Switched to branch 'master'
master์ ์ถ๊ฐ commit ์ด ๋ฐ์์ํค๊ธฐ!!
๋์ผ ํ์ผ์ ์์ ํน์ ์์ฑํ์ธ์!
$ git log --oneline
3c81134 (HEAD -> master) Hotfix signout urls.py
2125d5b Merge branch 'feature/signout'
75f0abd README @ master
fb74094 Complete signout
f219c8c Complete CRUD)
d66ff92 Init
master์ ๋ณํฉ
(master) $ git merge feature/signup Auto-merging urls.py CONFLICT (content): Merge conflict in urls.py Automatic merge failed; fix conflicts and then commit the result. (master|MERGING)
๊ฒฐ๊ณผ -> merge conflict๋ฐ์
git status ๋ช ๋ น์ด๋ก ์ถฉ๋ ํ์ผ์ ํ์ธํ ์ ์์.
(master|MERGING) $ git status On branch master You have unmerged paths. (fix conflicts and run "git commit") (use "git merge --abort" to abort the merge) Changes to be committed: new file: signup.txt Unmerged paths: (use "git add <file>..." to mark resolution) both modified: urls.py
์ถฉ๋ ํ์ธ ๋ฐ ํด๊ฒฐ
<<<<<<< HEAD # signout ======= # signup >>>>>>> feature/signup
merge commit ์งํ
git commit
vim ํธ์ง๊ธฐ ํ๋ฉด์ด ๋ํ๋ฉ๋๋ค.
์๋์ผ๋ก ์์ฑ๋ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ํ์ธํ๊ณ ,
esc
๋ฅผ ๋๋ฅธ ํ:wq
๋ฅผ ์ ๋ ฅํ์ฌ ์ ์ฅ ๋ฐ ์ข ๋ฃ๋ฅผ ํฉ๋๋ค.w
: writeq
: quit
์ปค๋ฐ์ด ํ์ธ ํด๋ด ์๋ค.
๊ทธ๋ํ ํ์ธํ๊ธฐ
(master) $ git log --oneline --graph * 4e55ba7 (HEAD -> master) Merge branch 'feature/signup' |\ | * fc7f0d8 (feature/signup) Complete signup * | 3c81134 Hotfix signout urls.py |/ * 2125d5b Merge branch 'feature/signout' |\ | * fb74094 Complete signout * | 75f0abd README @ master |/ * f219c8c Complete CRUD) * d66ff92 Init
branch ์ญ์
git branch -d feature/signup
Last updated
Was this helpful?