์ด๋ฒ์ ๊ธฐ์กด์ ๋ด์ฉ์ ๊ณผ๊ฑฐ์ ์์ ์ผ๋ก ๋๋๋ฆฌ๋
reset์ ๋ํด์ ์์๋ณด๋๋ก ํ์.
< ์ํฉ 1>
์๊ฒฉ ์ ์ฅ์์ ์๋ฃ๊ฐ ์ ์ฅ๋์ด ์์ ๊ฒฝ์ฐ :
์์ ์ค์ด๋ ํ์ผ์์ ๋ง์ฝ์ ํด๋น ๋ถ๋ถ๊น์ง ์์ฑํ ๋ด์ฉ์ ๋ค์ ์ทจ์ํ๊ณ
'## ๋ธ๋์น ๋ณ๊ฒฝํ๊ธฐ' ๊น์ง๋ก ๋ด์ฉ์ ๋๋๋ฆฌ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
์ด๋ด ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก 'reset'์ด๋ค.
์์ค ํธ๋ฆฌ์์ ๋ฆฌ์ ์ ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.
๋จผ์ ํ์ฌ master ๋ธ๋์น๊ฐ ์๋ ์ปค๋ฐ ์์น๋ฅผ ํ์ ํ ํ,
๋์๊ฐ๊ณ ์ถ์ ์์ ์ ์ฐพ์๋ธ๋ค.
์ฐพ์๋ด๋ ๋ฐฉ๋ฒ์ ๋ด๊ฐ ์์ฑํ ์ปค๋ฐ์ ํ์ธํ๊ฑฐ๋,
์ฐ์ธก ํ๋จ์ ์๋ ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ์ ํ์ธํด ์ฐพ์๋ผ ์ ์๋ค.
๋๋๋ฆด ์ปค๋ฐ ์์ ์ ํด๋ฆญํด ์ค ๋ค ์์ค ํธ๋ฆฌ์ 'reset'์ธ
'์ด ์ปค๋ฐ๊น์ง ํ์ฌ ๋ธ๋์น๋ฅผ ์ด๊ธฐํ'๋ฅผ ๋๋ฌ์ค๋ค.
๊ทธ๋ฌ๋ฉด Soft - Mixed - Hard 3๊ฐ์ง๊ฐ ๋์ค๋๋ฐ
Hard๋ฅผ ์ ํํด์ค๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ด๋ฒ์ ๋ฐฐ์ธ 'reset'์ด๋ฉฐ,
์ฝ๋๋ก ๋ฐ์ง๋ฉด git reset --hard์ด๋ค.
๊ทธ๋ฌ๋ฉด master ๋ธ๋์น๊ฐ ์๋๋ก ๋ด๋ ค๊ฐ ๊ฒ์ ํ์ธํ ์ ์๋ค.
ํ์ผ์ ๋ค์ด๊ฐ ํ์ธํด ๋ณด๋ฉด ๋ด์ฉ์ด ์์ด์ง ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ง์ฝ์ ๋ด์ฉ์ ๋ค์ ์ต๊ทผ ๋ด์ฉ์ผ๋ก ์๋๋๋ก ๋๋๋ฆฌ๊ณ ์ถ๋ค๋ฉด
๊ฐ์ฅ ์ต๊ทผ ์ปค๋ฐ์ ๋๋ฅธ ํ '๋ณํฉ'์ ๋๋ฅด๋ฉด ๋๋ค.
ํ์ฌ ๊ฐ์ ๊ฒฝ์ฐ๋ ์๊ฒฉ ์ ์ฅ์(github)์ ์๋ฃ๋ค์ด ์๊ธฐ ๋๋ฌธ์ ๋ณํฉ์ผ๋ก ๋๋๋ฆฌ๋ ๊ฒ ๊ฐ๋ฅํ์ง๋ง
๋ง์ฝ ์๊ฒฉ ์ ์ฅ์์ ์๋ฃ๋ฅผ ์ ์ฅํ์ง ์์์ ๊ฒฝ์ฐ์๋ ๋๋๋ฆด์ ์๋ค.
< ์ํฉ 2>
์๊ฒฉ์ ์ฅ์์ ์๋ฃ๊ฐ ์ ์ฅ๋์ด ์์ง ์์ ๊ฒฝ์ฐ :
์ด๋ฒ์๋ ํ์ผ์ ์๋ก์ด ๋ด์ฉ์ ์ถ๊ฐํ ํ ์๊ฒฉ์ ์ฅ์์ ์ ์ฅํ์ง ์์ ์ฑ๋ก
๋๋๋ฆฌ๊ธฐ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค.
(add, commit๊น์ง ์งํํ๊ณ push๋ ์งํํ์ง ์๋๋ค.)
์ปค๋ฐ๊น์ง ์งํํ ์ํ์ด๋ฉฐ,
์ด๋ ์๊ฒฉ ์ ์ฅ์์ push ํ์ง๋ ์๊ณ ๋ฐ๋ก ๋๋๋ฆฌ๊ธฐ๋ฅผ ๋๋ฌ๋ณธ๋ค.
(์ปค๋ฐ์ด 1๊ฐ๊ฐ ์๋ 2๊ฐ๊ฐ ๋ฐ์ํ ์ด์ ๋, ๊ทธ๋ฅ ๋ฐ๋ก ๋ ๋ฒ์ ํด์ค ๊ฑฐ๋ค)
< ์ํฉ 1>๊ณผ๋ ๋ฌ๋ฆฌ ์ปค๋ฐ์ด ๋ณด์กด๋์ง ์๊ณ ๋ณต๊ตฌํ ์ ์๊ฒ ์์ ์ฌ๋ผ์ก๋ค.
< ์ํฉ 3>
๊ฐ์ ํธ์ push --force :
๋ด์ฉ์ ์ถ๊ฐํ ํ ์ปค๋ฐํ๊ณ ํธ์๊น์ง ์งํํด์ค๋ค.
์์ ์๋ master ๋ธ๋์น๋ฅผ ์๋์ ์๋ 'Merge branch 'conflict''๋ก ๋๋๋ฆฌ๊ธฐ๋ฅผ ํด์ค๋ค.
master ๋ธ๋์น๊ฐ ํด๋น ์์น๋ก ๋๋์ํ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์๋ํฐ์ ์ ์ํด ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ๊ณ ๊ทธ๋๋ก ์ปค๋ฐํด์ค๋ค.
์์ค ํธ๋ฆฌ์ ๋ค์ด๊ฐ๋ฉด ์๊น์๋ ๋ค๋ฅด๊ฒ push ์นธ๊ณผ pull์ ์ซ์๊ฐ ๋์์ ๋์ค๊ณ
๋ธ๋์น ๋ชจ์๋ง์ ๋ ์ด์ํ ๊ฒ์ ์ ์ ์๋ค.
์ด ์ํ์์ push๋ฅผ ํ๊ฒ ๋๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ด์ ๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ปค๋ฐํ '๋๋๋ฆฌ๊ธฐ ๋ด์ฉ ์ถ๊ฐ (๋ฆฌ์ )'์ด
'Merge branch 'conflict'' ์ปค๋ฐ์ผ๋ก๋ถํฐ ์จ ๊ฒ์ธ๋ฐ
์ด๊ฒ์ด ์๊ฒฉ ์ ์ฅ์๋ณด๋ค ๊ณผ๊ฑฐ์ ์์นํด ์๊ธฐ ๋๋ฌธ์
push๋ฅผ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
(origin์ด ์๊ฒฉ ์ ์ฅ์์ ์ด๋ฆ์ด๋ค.)
์ด๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ๋ฐ๋ก ๊ฐ์ ํธ์์ด๋ค.
push๋ฅผ ๋๋ฌ์ฃผ๋ฉด ๊ฐ์ ํธ์๋ฅผ ๋๋ฅด๋ฉด ๋๋๋ฐ
์ฒดํฌ๋ฐ์ค๊ฐ ๋งํ์์ผ๋ฉด ํฐ๋ฏธ๋์์ ์ง์ ์ ๋ ฅํด ํด๊ฒฐํด์ผ ํ๋ค.
์์ค ํธ๋ฆฌ์ ๋ค์ด๊ฐ๋ฉด ์ฐ์ธก์ ๋ฐ๋ก ๋ณด์ด๋ 'ํฐ๋ฏธ๋'์ ํด๋ฆญ ํ
๊ฐ์ ํธ์ ๋ช ๋ น์ด git push --force๋ฅผ ์ ๋ ฅํด ์ค๋ค.
์ฑ๊ณตํ๋ค๋ฉด ํด๋น ์ฐฝ์ด ๋ฌ๋ค.
ํ์ ์ ์ฅ์๋ฅผ ๋ซ๊ณ ๋ค์ ์ด์ฐ ๊ฐ์ ํธ์๊ฐ ๋์ด์๋ ์ํ๋ฅผ ๋ณผ ์ ์๋ค.
(๋์ ๊ฐ์ ํธ์๋ก ์ธํด ์ฒ์์ ์ถ๊ฐํ ๋ด์ฉ์ ์ฌ๋ผ์ง๊ณ ๋์ค์ ์ปค๋ฐ๋ ๋ด์ฉ์ผ๋ก ์ ์ง๋๋ค.)
< ์ํฉ 4>
๊ฐ์ ํธ์ ์์ด ํธ์ ์ฑ๊ณตํ๊ธฐ :
< ์ํฉ 3>์ฒ๋ผ master ๋ธ๋์น๋ฅผ ๋ค์ ์๋ซ๋จ๊ณ๋ก ๋๋๋ ค์ค๋ค.
์ง์์ง ์๋ฆฌ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ๊ณ ์ ์ฅ ํ, ์ปค๋ฐํด์ค๋ค.
์๊น์ ๊ฐ์ ๊ฐ์ง ๋ชจ์์ด ๋ํ๋๋๋ฐ ์ด๋ push๋ฅผ ์งํํ๋ฉด
๋ ์๋ฌ ๋ฐ์์ผ๋ก ๊ฐ์ ํธ์๋ฅผ ํด์ผ ํ ๊ฒ์ด๋ค.
์ด๋์ ํด๊ฒฐ๋ฐฉ๋ฒ์ ๋ฐ์ ์๋ ์๊ฒฉ ์ ์ฅ์๋ฅผ merge ํ ํ์ push๋ฅผ ํด์ฃผ๋ ๊ฒ์ด๋ค.
๋จผ์ ์๊ฒฉ ์ ์ฅ์์ merge๋ฅผ ํด์ฃผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ฐ
์นจ์ฐฉํ๊ฒ ์ถฉ๋ ํด๊ฒฐ์ '๋ด ๊ฒ' ์ ํ์ ๋๋ฌ ์ค๋ฅ๋ฅผ ์์ ์ค๋ค.
๊ทธ ํ ๊ฐฑ์ ์ฌํญ์ ์ ๋ ฅํ๊ธฐ ์ํด ์ปค๋ฐ์ ์์ฑํด ์ค๋ค.
๋ณํฉ์ด ์ ๋๋ก ๋ ๊ฒ์ ํ์ธํ ํ push๋ฅผ ์งํ์ํจ๋ค.
(๊ฐ์ ํธ์ ์๋!!)
push ํ์ ์๊ฒฉ ์ ์ฅ์๋ ์ต๊ทผ ์ปค๋ฐ์ผ๋ก ์ฌ๋ผ๊ฐ ๊ฒ์ ํ์ธํ ์ ์๋ค.
reset
๋๋๋ฆฌ๊ธฐ
๋ช ๋ น์ด : git reset --hard
๊ฐ์ ํธ์
๋ช ๋ น์ด : git push --force
์์ค ํธ๋ฆฌ๋ฅผ ์ด์ฉํด๋ git ๋ช ๋ น์ด๋ฅผ ์๊ณ ์์ด์ผ
๋์ค์ ํธํ๋ ๋ช ๋ น์ด๋ ์์๋์
< ์ฐธ๊ณ >
์ธํ๋ฐ - git๊ณผ github
https://www.inflearn.com/course/git-and-github
โป ํด๋น ๊ธ์ ์ต๋ ๋ชฉ์ ์ผ๋ก ์์ฑ๋ ๊ธ์ ๋๋ค โป
๋๊ธ