Conflict
Merge Conflict
๋ค๋ฅธ ์์ค์ ๋ณ๊ฒฝ๋ด์ฉ์ ํ์ฌ ์์ ์ค์ธ ๋ธ๋์น์ ๋จธ์ง, ํน์ ํตํฉ ์ ๋ฐ์
integration์ ๋ธ๋์น ๋จธ์ง์๋ง ๋ฐ์ํ๋๊ฒ ๋ฟ๋ง ์๋๋ผ,
rebase, interactive Reabse, cherry-picking, pull, stash ์ ์ฉ์์๋ ๊ฐ๋ฅ
๋ธ๋์น ๋จธ์ง๋ ๋ณดํต ์ค์ค๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋ณ๊ฒฝ์ฌํญ์ ํตํฉํ ์ ์๋ค.
Merge Conflict ๋ฐ์
์ธ์ , ์ด๋ป๊ฒ ๋จธ์ง ์ปจํ๋ฆญ์ด ๋ฐ์ํ๋์ง ํ์
๋จธ์ง ์ปจํ๋ฆญ์ด ๋ฐ์ํ๋ ๋ฐฉ๋ฒ๊ณผ ์๊ธฐ
๋ชจ์๋ ๋ณํ๊ฐ ์ด๋ฃจ์ด์ง๋ ์๊ธฐ
์ฆ ์์คํ ์ด ๋ฌด์์ด ์ณ์์ง ๊ทธ๋ฅธ์ง ํ๋จํ ์ ์๋ ์ํฉ์์ ์ฌ๋์ ํ๋จ์ด ํ์
ex: ๊ฐ์ ์ฝ๋ ๋ผ์ธ์์ ๋๊ฐ์ ๋ค๋ฅธ ๋ธ๋์น์์ ๋ ๊ฐ์ ์ปค๋ฐ์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ, ์ด๋ ๊ฒ์ด ๋ ๋์์ง ํ๋จํด์ผํ๋ ๊ฒฝ์ฐ
ex: ํ์ผ์ด ํ ๋ธ๋์น์์ ์์ , ๋ค๋ฅธ ๋ธ๋์น์์ ์ญ์ ๋ ๊ฒฝ์ฐ
๋ฐ์ ์ฌ๋ถ ํ์
๋จธ์ง ์ปจํ๋ฆญ์ด ๋ฐ์ํ๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ
๊น ์์คํ ์์ ์๋์ผ๋ก ์๋ด
๋จธ์ง/๋ฆฌ๋ฒ ์ด์ค ์คํจ์ ๋ฐ๋ก ์๋ด
์คํ ์ทจ์ ํ ์ฌ์์ ๋ฐฉ๋ฒ
๋จธ์ง ์ปจํ๋ฆญ์ ์คํ ์ทจ์ ํ ๋ค์ ์์ํ๋ ๋ฐฉ๋ฒ
๋จธ์ง ์ปจํ๋ฆญ ์ดํ์ ์์ ์ ๊ณ์ ์งํํ๋ ค๋ฉด ์ปจํ๋ฆญ ์ฒ๋ฆฌ๊ฐ ํ์
์ปจํ๋ฆญ ํด๊ฒฐ
์ปจํ๋ฆญ์ ์ผ์ผํจ ์์ ์ค๋จ / ์คํ ์ทจ์
์คํ ์ทจ์ ํ ์ฌ์์ ๋ฐฉ๋ฒ
๋๋ถ๋ถ
--abort
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋งํผ ๊ฐ๋จ๋จธ์ง/๋ฆฌ๋ฒ ์ด์ค๊ฐ ์คํ ์ทจ์ํ๊ณ ์ปจํ๋ฆญ ๋ฐ์ ์ ์ผ๋ก ๋ณต๊ท
์ปจํ๋ฆญํ๋ ํ์ผ์ ํด๊ฒฐํ๊ธฐ ์ ๋ถํฐ ๋์ด์ ๋์๊ฐ ์ ์์๋์๋ ์ด์ฉ ๊ฐ๋ฅ
Git์์ ์ด๋ป๊ฒ ๋ณด์ฌ์ง๋์ง
๋จธ์ง ์ปจํ๋ฆญ์ด ์ด๋ป๊ฒ ๋ณด์ฌ์ง๋์ง ์ดํด
๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋ถ๋ถ์ <<<<<<<<<, >>>>>>>>> ๋ก ํ๊ธฐ
์ฒซ๋ฒ์งธ ๋ง์ปค ๋ค์ ๋ด์ฉ์ ํ์ฌ ์์ ์ค์ธ ๋ธ๋์น(HEAD)
=========
์๋ก ์ปจํ๋ฆญํ๋ ๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ตฌ๋ถ๋ค๋ฅธ ๋ธ๋์น์ ๋ณ๊ฒฝ ๋ด์ฉ(develop)
์ ๋ผ์ธ์ ํด๊ฒฐํ๋ ๊ฒ์ด ์ปจํ๋ฆญ์ ํด๊ฒฐํด๋๊ฐ๋ ์ผ
Git์์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง
๋จธ์ง ์ปจํ๋ฆญ์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋
๋ณ๊ฒฝ ์๋ฃ์ ์ํ๋ ๋ชจ์์ผ๋ก ํ์๊ฐ ๋๋๋ก
๋ค๋ฅธ ์ฌ๋์ ์์ ์ธ ๊ฒฝ์ฐ ์์ฌ์ํต ํ์
์ ์ฉ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์ค์ผ ์ ์์
Tower Application
๋ณต์กํ ์ปจํ๋ฆญ์์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณด๋ค ์ ์ฉ
์ํ๋ ๋๊ตฌ๋ git config ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ ๊ฐ๋ฅ
Built-in merge tool
์ปจํ๋ฆญ์ ์ต์ํ ์ํค๊ธฐ
์ปจํ๋ฆญ ๋ฐ์ ์ํฉ์ ์ต์ํ ์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๋ณด์.
๊ตฌ์กฐํ๋ ํ๋ก์ ํธ
ํผ์ฒ์ ํ ๋น ๋ฐ ๊ตฌํ
๋๋ฉ์ธ / ํ๋ฉด์ ๋๋์ด์ ๋ถ๋ฐฐ
์์กด์ฑ์ ๋ถ๋ฆฌ์ ๋์จํ ๊ฒฐํฉ
์ด๋ฅผ ๋๋๋๋ฐ ์ ๋ฆฌ
Presentation Layer ๋ฟ๋ง ์๋๋ผ Data / Domain (Model, Repository, UseCase) ๋ชจ๋ ๊ฐ๊ฐ ๋๋์ด์ ๋ถ๋ฆฌ / ๊ตฌ๋ถ
์ถฉ๋์ ๋ฐ์์ ์๋น๋ถ๋ถ ํด์
๊ด๋ฆฌ์ ๋ถํธํจ์ด ๋ฐ์ ๊ฐ๋ฅ (ํ ๋์ ๋ณด๊ธฐ ์ด๋ ค์)
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ์ํคํ ์ฒ ๋งต/ ์๋น์ค ๋งต / ์์กด์ฑ ๊ทธ๋ํ ํ์
๋ธ๋์น ์ต์ ํ
์ถฉ๋์ ๋ธ๋์น๊ฐ origin์ head์ ๋ฉ๋ฆฌ ๋จ์ด์ง์๋ก ์ปค์ง
์ฃผ๊ธฐ์ ์ธ pull / rebase๋ ๋ก์ปฌ์์์ ์ปจํ๋ฆญ์ ์ค์ฌ์ฃผ๋ ์ญํ
๋ธ๋์น๋ ์๊ฒ ์ ์ง
์ถฉ๋์ ๋ธ๋์น๊ฐ origin์ HEAD์ ๊ฐ๊ทน์ด ํด์๋ก ์ปค์ง
ํ๋์ ์ปค๋ฐ์ ์์ ๋จ์๋ก (์ถฉ๋ถํ ๊ทธ ์๋ฏธ๋ฅผ ํฌํจํ ์ ์๋)
Pull Request๋ ๋ง์ฐฌ๊ฐ์ง (์ถฉ๋ถํ ๊ทธ ์๋ฏธ๋ฅผ ํฌํจํ ์ ์๋)
๊ฒฐ๊ตญ Origin๊ณผ ๋๋จ์ด์ง ์์ ์ ๋์ค์ ํฌ๊ฒ ๋์์ค๊ฒ ๋๋ค.
๋ฌด์์ ํด์ผํ ์ง, ์ด๋ป๊ฒ ํด์ผํ ์ง ์ ์ํ๊ณ ์์
์งํ
ํ๋์ ํผ์ฒ ๊ตฌํ/์์ฑ์ ๊ทธ ์๋ฏธ๋ฅผ ์ถฉ๋ถํ ํ์ ํ๊ณ ์ด๊ฒ์ ๋ฐ์ํ์ ๋ ์์ฑ
ใด ์๋ ๊ฒฝ์ฐ, QA ๋์ค์ ์ด์ ๋ฐ์ ํน์ ๋ฐฐํฌ ์ดํ ํซํฝ์ค์ ๋ฐ์ ๊ฐ๋ฅ
Feature๋ฅผ ์์ ํ๋๋ฐ ์์ด์ ๋ฌด์์ ํด์ผํ ์ง(What), ์ด๋ป๊ฒ ๊ตฌํํ ์ง(How)๋ฅผ ์ดํดํ๊ณ , ์ด๋ฅผ ํ ๋๋ก ์ํฅ ๋ฒ์๋ฅผ ์ฐ์ ํ๋ฉด, ๋ถ๋ด์ด ๋ํจ
์๋ชป๋ Rebase๋ก ์ธํ ๋ฌธ์ ๋ณต๊ตฌ (reflog)
git์ head ํฌ์ธํฐ์ ๋ชจ๋ ์์ง์(commit, merge, rebase, cherry-pick, reset) ๋ฑ์ ๋์๋ค์ ๋ชจ๋ reflog์ ๊ธฐ๋กํจ
git log / reflog ์ฐจ์ด์
git log์ reflog์ ์ฐจ์ด์ ์ดํด
git log
ํ์ฌ(Head)๋ก๋ถํฐ ๋ถ๋ชจ ๋ธ๋์น๋ฅผ ๊ฑฐ์ฌ๋ฌ ํ๋ฌ๊ฐ๋ฉฐ print๋ฅผ ๋ฐ๋ณต
git reflog
๋น๊ณต๊ฐ ๋ workspace ๊ด๋ จ ์์ ๊ธฐ๋ก
์กฐ์๋ชฉ๋ก์ ๊ฑฐ์น์ง ์์
HEAD๊ฐ ๊ณผ๊ฑฐ์ ๊ฐ๋ฆฌํจ ๋ชจ๋ ์ปค๋ฐ์ ์์๋๋ก ๋์ด
๋ฌธ์ ํธ์ง๊ธฐ์ ์คํ ์ทจ์ ๊ธฐ๋ก๊ณผ ์ ์ฌ
repository์ ์ผ๋ถ๊ฐ ์๋ ๋ก์ปฌ ๊ธฐ๋ก
์ปค๋ฐ๊ณผ ๋ณ๋๋ก ์ ์ฅ
.git/logs/refs/heads/
์ ๋ก๊ทธํ์ผ ์กด์ฌ๋ชจ๋ ๋ธ๋์น์ ๋ก์ปฌ ์ปค๋ฐ ์ถ์
90์ผํ์ ์ ๋ฆฌ๋์ง๋ง ์กฐ์ ๊ฐ๋ฅ
git config gc.reflogExpire 180.days.ago
(๋๋ never)
์ ์ค๋ ์ปค๋ฐ ๋ณต๊ตฌ
๋จธ์ง ์ปจํ๋ฆญ์ด ๋ฐ์ํ๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ
์ปค๋ฐ ์ ์ค ๋ฐ์ ์๋๋ฆฌ์ค
์ผ๋ถ ์ปค๋ฐ์ ์ ๊ฑฐํ๊ธฐ๋ก ๊ฒฐ์
git reset์ผ๋ก ์ปค๋ฐ์ ์ ๊ฑฐ
git reset --hard [hash]
์๋ชป๋ ์๊ฐ์์ ๊นจ๋ฌ์
์ ์ค๋ ์ปค๋ฐ ํ์ธ ๋ฐ ๋ณต๊ตฌ (git reset ์ฌ์ฉ ใฑใด)
git reset --hard [hash]
๋๋๋ฆด ์ปค๋ฐ์ ํด์ฌ
ํจ๋ ๐ฃ
์ ์ค๋ ๋ธ๋์น ๋ณต๊ตฌ
๋จธ์ง ์ปจํ๋ฆญ์ ์คํ ์ทจ์ ํ ๋ค์ ์์ํ๋ ๋ฐฉ๋ฒ
ํผ์ฒ ๋ธ๋์น๋ฅผ ์ ๊ฑฐํ๊ธฐ๋ก ๊ฒฐ์ฌ
๋ธ๋์น ์ ๊ฑฐ
git branch -D feature/login
git branch -vv
(๋ธ๋์น ์ ์ฒด์กฐํ)
์๋ชป๋ ์๊ฐ์์ ๊นจ๋ฌ์
ํจ๋ ๐ฃ
๋ธ๋์น ์ ๊ฑฐ ๋ณต๊ตฌ
git reflog๋ก ๊ธฐ๋ก ์ดํด๋ณด๊ธฐ
์ ๊ฑฐ๋ ๋ธ๋์น์ ๋ง์ง๋ง ์ปค๋ฐ ํด์ฌ๊ฐ์ ๋ณต์ฌ
git branch ๋ช ๋ น์ด๋ก ํด๋น ์ํ๊ฐ์ ๋ธ๋์น ์์ฑ
์ปค๋ฐ hash๋ฅผ ๋ค์ ๋ฃ์ด์ค์ผ๋ก์จ ๋ธ๋์น๊ฐ ํด๋น ์ปค๋ฐ์ ๊ฐ์ง๊ณ ์๋ ์ํ๋ก์ ๋ณต๊ตฌ ํ ์ ์๊ฒ๋จ
Last updated