๐ ์ปดํจํฐ ํฌ๋งท์ผ๋ก ๊ฐ๋ฐํ๊ฒฝ์ ๋ค์ ์ธํ ํด์ผํด์ ์ธํ ๊ฒธ git ์ ๋ฆฌ๋ ๋ค์ ํด๋ณด๋ ค๊ณ ํ๋ค.
Q. 2์ผ ์ ์ฝ๋๋ก ๋๋์๊ฐ๋ ค๋ฉด?
๋ณดํต ์ฌ๋๋ค์ git ์ด๋ผ๋ ๋ฒ์ ๊ด๋ฆฌ ์ํํธ์จ์ด๋ฅผ ์ด๋ค.
์๋์ฐ๋ git windows ๋ฒ์ ๋ค์ด๋ฐ์์ ์ค์นํ๋ฉด ๋
โ
2 ๊ณณ ์ฒดํฌํ๊ธฐ
์ด ์ปดํจํฐ์์ git ์ฒ์ ์ด๋ค๋ฉด ์ด๋ฆ ๋ฑ๋ก๋ถํฐ
git config --global user.email "ํ๊ธธ๋@naver.com"
git config --global user.name "ํ๊ธธ๋"
์ฐจ๋ก๋ก ์ ๋ ฅ
์์ ํด๋ ์๋ํฐ๋ก ์คํ ํ ํฐ๋ฏธ๋ ์ฐฝ ์ด๊ณ
git init
์ ๋ ฅ
์ฝ๋ ์์ ํ
git add ํ์ผ๋ช
git commit -m '์๋ฌด๋ฉ์ธ์ง'
์ฐจ๋ก๋ก ์ ๋ ฅ
๋ฒ์ ๋ง๋ค ๋ git add, git commit ์ฐจ๋ก๋ก ํ๋ฉด ๋๋ค.
๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ฆฌ์๋ฉด ์ด๋ฐ ์์ธ๋ฐ
์ฌ๊ธฐ์ ๊ฐ์ด๋ฐ ๋ถ๋ถ์ staging area,
ํ์ผ๋ฒ์ ์ด ์ ์ฅ๋๋ ๊ณณ์ repository (์ ์ฅ์) ๋ผ๊ณ ํ๋ค.
1. staging area๋ commit์ ํ๊ธฐ ์ ์ commitํ ํ์ผ๋ค์ ๊ณจ๋ผ๋๋ ๊ณณ์ด๋ค.
๊ทธ๋ฆฌ๊ณ staging area์ ํ์ผ๋ฃ๋ ํ์๋ฅผ staging์ด๋ผ๊ณ ํฉ๋๋ค.
git add ๋ช
๋ น์ด๋ก staging ํ ์ ์๋ค.
2. repository๋ commit๋ ํ์ผ์ ๋ฒ์ ๋ค์ ๋ชจ์๋๋ ๊ณณ์ด๋ค.
repository์ ์ค์ฒด๋ฅผ ๊ตฌ๊ฒฝํ๊ณ ์ถ์ผ๋ฉด ์์
ํด๋์์ ์จ๊ฒจ์ ธ ์๋ .git ํด๋ ์ด์ด๋ณด๋ฉด ๋๋ค.
git add ํ์ผ๋ช
1 ํ์ผ๋ช
2
์ด๋ ๊ฒ ์ฌ๋ฌ ํ์ผ์ ๋์์ ์คํ ์ด์งํ ์ ์๋ค.
git add .
์์ ํด๋์ ๋ชจ๋ ํ์ผ์ ์ ๋ถ ์คํ ์ด์งํ๊ณ ์ถ์ผ๋ฉด git add . ํ๋ฉด ๋๋ค.
git status
์ง๊ธ ๋ณ๊ฒฝ๋ ํ์ผ, ์คํ ์ด์ง๋ ํ์ผ ์ด๋ฐ๊ฑธ ์ญ ์๋ ค์ค๋ค.
์ง๊ธ ๋ญ ํ๋์ง ๊น๋จน์์ ๋๋ ์์ฃผ ์ ๋ ฅํ๊ฒ ๋๋ค.
git restore --staged ํ์ผ๋ช
์คํ ์ด์ง๋ ํ์ผ์ ์ทจ์ํ๊ณ ์ถ์ผ๋ฉด ํ๋ฉด ์ด๊ฑฐ ์ ๋ ฅํ๋ฉด ๋๋ค.
ํฐ๋ฏธ๋์์ ์์ฃผ ์๋ ค์ฃผ๋ ๋ช ๋ น์ด๋ผ ์ธ์ธ ํ์๋ ์๋ค.
git commit -m '๋ฉ์ธ์ง'
๋ฉ์ธ์ง์ ์ฝ๋์ ๋ฌด์จ๊ธฐ๋ฅ ์ถ๊ฐํ๋์ง ์ด๋ฐ๊ฑฐ ์ ์ผ๋ฉด ๋๋ค.
git branch ๋ธ๋์น์ด๋ฆ
์ด๋ฌ๋ฉด ํ๋ก์ ํธ ์ฌ๋ณธ์ด ํ๋ ์์ฑ๋๋ค.
git switch ๋ธ๋์น์ด๋ฆ
์๋ฅผ ๋ค์ด ๋ฐฉ๊ธ ๋ง๋ ๋ธ๋์น๋ก ์ด๋ํ๊ณ ์ถ์ผ๋ฉด
git switch ๋ธ๋์น์ด๋ฆ ํ๋ฉด ๋๋ค.
๋ค์ ๋ฉ์ธ ๋ธ๋์น๋ก ๋๋์๊ฐ๊ณ ์ถ์ผ๋ฉด git switch main ํ๋ฉด ๋๋ค. (๋๋ค ์ค์ ์ ๋ฐ๋ผ main ๋ง๊ณ master ์ผ ์๋ ์์)
์ด๋ค ๋ธ๋์น์ ์์๋์ง ๊น๋จน์์ผ๋ฉด git status ์ ๋ ฅํ ์ ์๋ค.
A. ํ์ฌ ๋ณธ์ธ ์์น์ด๋ค.
๊ทธ๋์ branch์์ ์งฐ๋ ์ฝ๋๊ฐ ๋ง์๋ค๋ฉด ์ด๋ป๊ฒ ํ ๊น?
์๋ณธ์ฝ๋๊ฐ ์๋ master ๋๋ main ๋ธ๋์น์ ํฉ์น๋ฉด ๋๋ค.
๋ธ๋์น๋ฅผ ํฉ์น๋๊ฑธ ์ ๋ฌธ์ฉ์ด๋ก merge๋ผ๊ณ ํ๋ค.
git switch main
git merge ๋ธ๋์น๋ช
merge ํ๊ณ ์ถ์ผ๋ฉด
์๋ฅผ ๋ค์ด git merge coupon ์ด๋ฌ๋ฉด coupon ๋ธ๋์น์ ์ฝ๋๋ค์ด main/master ๋ธ๋์น์ ํฉ์ณ์ง๋ค.
โ ๊ทผ๋ฐ ํฉ์น ๋ ์ฃผ์์ฌํญ์ด ์๋๋ฐ
master ๋ธ๋์น์ coupon ๋ธ๋์น์์ ๊ฐ์ ํ์ผ, ๊ฐ์ ์ค์ ์์ ํ์ ๊ฒฝ์ฐ
merge conflict ๊ฐ ๋ฐ์ํ๋ค.
์ด ๊ฒฝ์ฐ ์๋ํฐ๋ก ํด๋น ํ์ผ์ ์ด์ด๋ณด๋ฉด ์ถฉ๋์ฌํญ์ด ์ ํ์๋ค.
โ ์ถฉ๋์ด ๋ ์ฝ๋ ์ค ์ด๋ค ์ฝ๋๋ฅผ ์ ์ฉํ ์ง ๊ณ ๋ฅด๋ฉด ๋๋๋ฐ
<<<< / >>>> / ==== ์ด๋ฐ ์ธ๋ฐ์๋ ๊ฒ๋ค์ ๋ค ์ง์ฐ๊ณ ์ํ๋ ์ฝ๋๋ง ๋จ๊ธฐ๋ฉด ๋๋ค.
(VSCode ์๋ํฐ์ ๊ฒฝ์ฐ Accept Incoming Change ์ด์ฉ๊ตฌ ๋ฒํผ๋ค์ ์ ๊ณตํด์ฃผ๋๋ฐ ๊ทธ๊ฑฐ ๋๋ฅด๋ฉด ํธ๋ฆฌํ๋ค)
์ด๋ค ์ฝ๋๋ฅผ ๋จ๊ธธ์ง ๊ฒฐ์ ํ์ผ๋ฉด
git add ํ์ผ๋ช
git commit -m '๋ฉ์ธ์ง'
์ ๋ ฅํ๋ฉด ์๋ก์ด commit ์ ์์ฑํด์ฃผ๋ฉฐ merge conflict ํด๊ฒฐ + ๋ธ๋์น ํฉ์น๊ธฐ ์๋ฃ.