์ปค๋ฐ์ ๋๋๋ฆฌ๋ ค๋ฉด ์ด์ ์ปค๋ฐ์์ ์ํ ๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ทจ์ํ๋ ์๋ก์ด ์ปค๋ฐ์ ๋ง๋๋ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ git์์ CTRL + Z
๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์๊ฒฉ ์ ์ฅ์์ ํธ์ํ๋ ๋ชจ๋ ์ปค๋ฐ์๋ SHA(Secure Hash Algorithm)๋ผ๊ณ ํ๋ ๊ณ ์ ํ ์ํ๋ฒณ ํค๊ฐ ์์ผ๋ฏ๋ก git์์ ๋๋๋ฆฌ๊ธฐ๊ฐ ์ฌ์์ง๋๋ค. ์ฆ, SHA๋ฅผ ์ฌ์ฉํ๋ ํ ์ธ์ ๋ ์ง ์ปค๋ฐ์ ๋๋๋ฆด ์ ์์ต๋๋ค. ํ์ง๋ง ๊ทธ๋ ๊ฒ ํ๋ฉด, ๋น์ ์ ์ ์ฅ์๊ฐ ์๋ง์ด ๋์ง ์๋๋ก ์กฐ์ฌ์ค๋ฝ๊ฒ ์์๋๋ก ๋ฐฐ์ดํด์ผ ํฉ๋๋ค.
์คํ ์ทจ์ํ๋ ค๋ ํน์ ์ปค๋ฐ์ SHA๋ฅผ ์ ํํ๋ ค๋ฉด ์ง๊ธ๊น์ง ์์ฑํ ๋ชจ๋ ์ปค๋ฐ์ ๋ก๊ทธ๊ฐ ๋์์ด ๋ ๊ฒ์
๋๋ค.
์ด๋ฅผ ์ํด ๋ค์ ๋ช
๋ น์ ์คํํฉ๋๋ค:
git log --oneline
git log
๋ช
๋ น๋ง ์คํํ๋ฉด SHA(๊ธด ํ์)์ ์ป์ ์ ์์ง๋ง --oneline
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณด๋ค ๊ฐ๋
์ฑ์ด ์ข์(ํ์ค) ๋ฐฉ์์ผ๋ก ํ์ํ ์ ์์ต๋๋ค.
์ด ๋ช ๋ น์ ์คํํ ๋ ํ์๋๋ ์ฒซ๋ฒ์งธ 7๊ฐ์ ๋ฌธ์๋ ์ถ์ฝ ์ปค๋ฐ ํด์๋ผ๊ณ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ด ์ ์ฅ์์์ git log --oneline
์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค:
For example, here is what I get when I run git log --oneline
on this repository:
389004d added spacing in title
c1b9fc1 Merge branch 'master' into tutorials
77eaafd added tutorial for reverting a commit
๋ฐ๋ผ์ git log --oneline
์ ์ฌ์ฉํ๋ฉด SHA์ ์ฒ์ 7๊ฐ์ ๋ฌธ์์ ํจ๊ป ์ ์ฅ์์์ ์์ฑํ ๋ชจ๋ ์ปค๋ฐ ๋ชฉ๋ก์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์ด์ "added spacing in title"์ ๋ํ ์ปค๋ฐ์ ์ทจ์ํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํ๊ณ , ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ๊ฒ ์ต๋๋ค.
- ์ปค๋ฐ์ SHA๋ฅผ ๋ณต์ฌํฉ๋๋ค. ์ฌ๊ธฐ์๋
389004d
์ ๋๋ค. - ๊ทธ๋ฆฌ๊ณ ๋์
git revert 389004d
๋ช ๋ น์ ์ฑํํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํ
์คํธ ํธ์ง๊ธฐ๊ฐ ์ด๋ฆฌ๊ณ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ํธ์งํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์ปค๋ฐ ๋ฉ์์ง๋ฅผ Revert
๋ผ๋ ๋จ์ด๋ก ์์ํ๋ ๊ธฐ๋ณธ git ๋ฉ์์ง๋ก ๋จ๊ฒจ๋๊ฑฐ๋ ์ํ๋๋๋ก ๋ฉ์์ง๋ฅผ ์์ฑํ ์๋ ์์ต๋๋ค.
- ๋ค์์ผ๋ก, ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ์ ์ฅํ๊ณ ๋ซ์ต๋๋ค.
- ์ปค๋งจ๋ ๋ผ์ธ์ผ๋ก ๋์๊ฐ๋๋ค.
git push origin <branch-name>
์ ์คํํ์ฌ ๋๋๋ฆฐ ๋ณ๊ฒฝ์ฌํญ์ Github์ ํธ์ํ์ญ์์ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ๋ณ๊ฒฝ์ฌํญ์ด ์์ํ๋ก ๋์๊ฐ ๊ฒ์
๋๋ค. ์ด ๊ฒฝ์ฐ์ ์ ์ฅ์๊ฐ c1b9fc1
์ ์ํ๋ก ๋๋์๊ฐ๋๋ค.