ํ์
์ ํ๋ค๊ฐ ๋ณด๋ฉด, branch๋ณ๋ก git์ ๊ด๋ฆฌํ๋ค. ์ด๋ฒ ํ๋ก์ ํธ ๋์ค์ ๊ธฐ๋ฅ์ ์ญ์ ํ๋๋ฐ ๊ธฐ๋ฅ์ ๋ค์ ๋๋๋ ค์ผํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. ๋ฌธ์ ๋ ์ด๋ฏธ ๋ช๊ฐ์ ์ปค๋ฐ์ ํธ์ฌํด๋ฒ๋ฆฐ ์ํฉ์ด์๋ค. ๊ทธ๋๋ง ์ํฉ์ด ๊ด์ฐฎ์๋ ๊ฒ์ ๋ด๊ฐ Commit์ ๊ธฐ๋ฅ์ญ์ ํ ๋ถ๋ถ์ ๋ฐ๋ก ์ปค๋ฐ์ ํ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ด์ค์๊ณ ๊ทธ๋ฌ๋ฉด **์ด ๊ธฐ๋ฅ ์ญ์ ์ปค๋ฐ๋ง ๋นผ๊ณ ** ๋๋จธ์ง ์ปค๋ฐ์ ์ด๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ญ๊น?
Commit์ ๋๋๋ฆฌ๊ธฐ์ํด์๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ผ๋, ๊ฒ์ํด๋ณธ ๊ฒฐ๊ณผ ๊น ๋ฆฌ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ค.
git rebase -i HEAD^^ or
git rebase -i <์ปค๋ฐhash๊ฐ>
git Rebase๋ฅผ ํตํด์ ์ด์ ์ ์ปค๋ฐ์ ํตํด์ ํ์ํ ๋ถ๋ถ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ด ์ปค๋ฐ์ ์ด๋ฆด์ง ์ฃฝ์ผ์ง๋ฅผ git CLI๋ฅผ ํตํด์ ๊ฒฐ์ ์ ํ ์ ์๊ณ ์ค์ ๋ก ์ด ์ปค๋ฐ์ ์ต์ ์์ด ์๋ ์ญ์์ผ๋ก ๋ฐฐ์ด๋์ด ํ๊ฐ์ฉ ํ๊ฐ์ฉ ์ฒดํฌํ๋ฉด์ ๋์ด๊ฐ ์ ์๋ค.
์ง๊ธ ๋ด๊ฐ ์ฒํ ๊ฒฝ์ฐ๋ ๊ธฐ๋ฅ ์ญ์ ์ปค๋ฐ์ ์ง์ฐ๊ฒ๋๋ฉด ์ญ์ ๋ ํ์ผ์ ๋ค์ ๋์ด๋ฆฌ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ๊ทธ ์ปค๋ฐ๋ง ๋นผ๊ณ ๋๋จธ์ง ์ปค๋ฐ์ ์ ์ง๋ ์ํ๋ก ๋์์ค๊ฒ ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด๋๋ก PUSH!ํ๋ฉด ๋ ์ค ์์๋๋ฐ.... ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด Push ๋ฐฉํฅ์ด master branch๋ก Push๊ฐ ๋๋ ๊ฒ์ด๋ค. ๋ถ๋ช ๋ด๊ฐ ์ฐ๋ feature/000 ๋ธ๋์น๋ก pushํ๊ณ ์ถ์๋ฐ ๊ทธ๊ฒ ์๋๋ค... ์ ์ด๋ฐ ์ํฉ์ด ๋ฐ์ํ๋์ง๋ฅผ ์์๋ณด๋ฉด git branch๋ฅผ ๋ณด๋ฉด ์ด๋ฐ ๋ฌธ๊ตฌ๊ฐ ์ ํ์๋ค.
Detached HEAD
์ด๋ฐ ์ํฉ์์๋ github Desktop์์๋ ์ฌ๋๋ก ์ด๋ค ์์ ๋ ํ ์ ์๊ธฐ๋๋ฌธ์ CLI๋ฅผ ์ด์ฉํด์ ํด๊ฒฐํด์ผํ๋ค.
์ฐธ๊ณ ์ฌํญ!
์
Detached HEAD์ํ๊ฐ ๋์๋๊ฐ์ ๋ํด์ ์๊ฐํด๋ดค๋๋ฐ ์ค์ ๋ก ๋ด๊ฐ ์ด ์ปค๋ฐ์ ๋๋ฆด๋๋ commit์ ์ฃผ์ ์ฆ hash๊ฐ์ ํตํด์ ๋๋ ธ๋ค.์ด ๋ฐฉ์์ ๋น์ทํ๊ฒ๋ checkout์์๋ ์ปค๋ฐ์ ํด์ฌ๋ก ์คํํ๊ฒ๋๋ฉด
Detached HEAD์ํ๊ฐ ๋๋ค๊ณ ํ๋ค. ์ฆ, commit์ ์ฃผ์๋ฅผ ํตํด์ rebase๋ฅผ ํ๊ฑฐ๋ checkout์ ํ๊ฒ๋ ๊ฒฝ์ฐ๋ ๋ฐ์ํ ์ ์๋ ๋ถ๋ถ์ด๋ค.
CLI๋ฅผ ํตํด์ detached Head ๋ branch๋ฅผ ๋ค์ ์๋ branch์ ๋ถ์ด๊ณ ์ถ๋ค๋ฉด ์ปค๋ฐํ ํ์
git checkout -b <branch> ex)feature/0000 ์๋กท๊ฒ?
ํ๊ฒ๋๋ค๋ฉด ์ค์ ๋ก branch๊ฐ ์์ฑ๋์ด github์ ์์ฑ์ด ๋ ๊ฒ์ด๋ค. checkout -b ์ต์
์ ์๋ก์ด branch๋ฅผ ์์ฑํ๋ ์ต์
์ด๋ค
์ฆ, ์ด ์๋กญ๊ฒ ์์ฑ๋ branch๋ฅผ ๋ฐํ์ผ๋ก ์๋ branch์ ๋ถ์ด๋ ๋ฐฉ์์ ํํ๊ฑฐ๋ ํน์ ์์ Develop branch์ mergeํ๋ ๋ฐฉ๋ฒ์ ํํด๋ ๋๋ค. ์ด๋ฏธ rebase๋ ์ํ๋ผ ์ด์ feature/000์์ ์์ ๋์ด์ง ๊ฐ์ ์ ์ง๋ ์ํ์ด๊ธฐ๋๋ฌธ์ ํฐ ๊ฑฑ์ ์ ์ํด๋๋๋ค.
๊ทธ๋ ๊ฒ ๋๊ฐ์ branch๊ฐ ์๊ธฐ๋ฉด ์ด๋ ๊ฒ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ถ์ฒ:https://superuser.com/questions/35267/how-can-i-roll-back-1-commit

