๋ชฉ์ฐจ
1. git branch
ํ๋ก์ ํธ ์งํ ์ค ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด์ ๊ธฐ๋ฅ์ ์ ๊ทธ๋ ์ด๋ ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ๊ฒ์ด๋ค.
์ด๋ ๊ธฐ์กด ํ์ผ์ ๊ทธ๋๋ก ์์ ํ๋ ๊ฒ๋ ๊ด์ฐฎ์ง๋ง
์์ ๋์ค ํ๋ก๊ทธ๋จ ์์ฒด๊ฐ ๋ง๊ฐ์ ธ๋ฒ๋ฆด ์๋ ์๋ ๋ฆฌ์คํฌ๋ฅผ ์๊ณ ์์ด์ผํ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ํ๋ก์ ํธ์ ๋ณต์ฌ๋ณธ์ ์์ฑํด์ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ์ด๋ค.
git์ branch ๊ธฐ๋ฅ์ ์์ฝ๊ฒ ๋ณต์ฌ๋ณธ์ ์์ฑํด์ค๋ค.
์ฌ์ฉ๋ฒ
git branch ๋ธ๋์น๋ช
์ ๋ช ๋ น์ด๋ก ๋ธ๋์น๋ฅผ ์์ฑํ๋ฉด ํ๋ก์ ํธ์ ์ฌ๋ณธ์ด ํ๋ ์์ฑ๋๋ค.
git switch ๋ธ๋์น๋ช
์์ฑํ ๋ธ๋์น๋ก ๋ณ๊ฒฝํ๋ฉด ์ฌ๋ณธ์์ ์์ ์ ํ ์ ์๋ ์ํ๋ก ๋ณ๊ฒฝ๋๋ค.
์์ 1
sub๋ผ๋ branch๋ฅผ ์์ฑํ ํ ๋ณ๊ฒฝํ์๋ค.
git status๋ฅผ ์ ๋ ฅํ๋ฉด ํ์ฌ ์ด๋ ํ branch์์ ์์ ์ค์ธ์ง๋ฅผ ํ์ธํ ์ ์๋ค.
sub banch์์ commit์ ํ ๋ค
VSC์ extension์ธ git graph๋ฅผ ํตํด ํ์ธํด๋ณด๋ฉด
์๋์ฒ๋ผ ์๋ก์ด branch์์ ์์ ํ ๋ด์ฉ์ด ๊ธฐ๋ก๋์ด์๋ค.
๋ค์ ๋ฉ์ธ branch๋ก ๋์๊ฐ๊ณ ์ถ๋ค๋ฉด
์์์ ํ์ธ๋๋ main branch๋ก ๋์๊ฐ๋ฉด ๋๋ค.
์์ 2
์๋ก์ด branch์ธ sub์์ ํ์ผ์ ํ๋ ์์ฑํ๋ค.
์์ ํ์ผ์ ์์ฑํ ๋ค commit์ ํด์ค๋ค.
git graph์์ ํ์ธํด๋ณด๋ฉด ์์ ๊ฐ๋ค.
์ด์ ๋ค์ main์ผ๋ก ๋ฐ๊พธ์ด๋ณด๋ฉด
sub ๋ธ๋์น์์ ์์ ํ๋ sub.txt๋ฅผ ์ฐพ์๋ณผ ์ ์๊ณ ,
์์ ๊ฐ์ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
2. git merge
์ด๋ฒ์๋ branch๋ฅผ ํฉ์ณ๋ณด์.
๋ธ๋์น๋ฅผ ํฉ์น๋ ๊ฒ์ merge ๋ผ๊ณ ํ๋ค.
์ฌ์ฉ๋ฒ
๋จผ์ main ๋ธ๋์น๋ก ์ด๋ํ๋ค.
git switch main
mergeํ ๋ธ๋์น๋ช ์ ์ด์ฉํด ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
git merge ๋ธ๋์น๋ช
์ด๋ ํํ ๋ฐ์ํ๋ ์ฃผ์์ฌํญ์ด ์๋ค.
์๋ก ๋ค๋ฅธ ๋ธ๋์น์์ ๊ฐ์ ํ์ผ์ ๊ฐ์ ์ค์ ์์ ํ ๊ฒฝ์ฐ ์ด์ฒ๋ผ
merge conflict๊ฐ ๋ฐ์ํ๋ค.
์ด๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ํ์ผ์ ์ด์ด๋ณด๋ฉด
์ด๋ 2๊ฐ์ง ์ค ํ๋๋ง ๋จ๊ธด ํ ๋๋จธ์ง๋ฅผ ๋ค ์ง์์ค ๋ค์, (VSC์ ๊ฒฝ์ฐ ์์ ์กด์ฌํ๋ ๊ธฐ๋ฅ๋ค์ ๋ฒํผ์ ํตํด ํ์ฉํ ์ ์๋ค.)
ํด๋น ํ์ผ์ ์๋กญ๊ฒ commit ํด์ฃผ๋ฉด merge๊ฐ ๋ง๋ฌด๋ฆฌ๊ฐ ๋๋ค.
git add ์ค๋ฅ๋ฐ์ํ๋ํ์ผ๋ช
git commit -m "๋ฉ์ธ์ง"
'๐ป | CS > Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git&Github] Git ์ ๋ฆฌ-5 (๋ค์ํ merge๋ฐฉ๋ฒ, 3way, fast-forward, rebase, squash, ๋ธ๋์น ์ญ์ ) (0) | 2023.10.29 |
---|---|
[Git&Github] Git ์ ๋ฆฌ-3 (.gitignore) (0) | 2023.10.29 |
[Git&Github] Git ์ ๋ฆฌ-2 (w.VSCode, diff) (0) | 2023.10.28 |
[Git&Github] Git ์ ๋ฆฌ-1 (์ต์ด์ค์ , add, commit, status, log) (0) | 2023.10.28 |
๋๊ธ