Git์์ ์ปค๋ฐ(Commit)๋ด์ญ ์์ ํ๊ธฐ
๋ชจ๋ ํฌ์คํ ์ ๊ตฌ๋ฆ์๋ ๊ฐ์ข ์ค "Git์ผ๋ก ์์ํ๋ ํ์ ๋ฐ ์คํ์์ค ํ๋ก์ ํธ" ์ ๋ด์ฉ์ ๋ด๊ณ ์์ผ๋ฉฐ
์ถ์ฒ๋ ์๋์ ์ฃผ์๋ก "๋๋๋น"๋์ ์๋ฃ์ ๋๋ค.
์์ ์ ์ธ ์๋๊ฐ ์๋ ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํด๋๋ ๋ชฉ์ ์ผ๋ก ํฌ์คํ ํ ๊ฒ์ ๋๋ค.
edu.goorm.io/learn/lecture/11528/git์ผ๋ก-์์ํ๋-ํ์ -๋ฐ-์คํ์์ค-ํ๋ก์ ํธ/info
๊ตฌ๋ฆEDU - ๋ชจ๋๋ฅผ ์ํ ๋ง์ถคํ IT๊ต์ก
๊ตฌ๋ฆEDU๋ ๋ชจ๋๋ฅผ ์ํ ๋ง์ถคํ IT๊ต์ก ํ๋ซํผ์ ๋๋ค. ๊ฐ์ธ/ํ๊ต/๊ธฐ์ ๋ฐ ๊ธฐ๊ด ๋ณ ์ต์ ํ๋ IT๊ต์ก ์๋ฃจ์ ์ ๊ฒฝํํด๋ณด์ธ์. ๊ธฐ์ด๋ถํฐ ์ค๋ฌด ํ๋ก๊ทธ๋๋ฐ ๊ต์ก, ์ ๊ตญ ์ด์ค๊ณ /๋ํ๊ต ์จ๋ผ์ธ ๊ฐ์, ๊ธฐ์ /
edu.goorm.io
# ์ปค๋ฐ ๋ด์ญ ํ์ธํ๊ธฐ
๊นํ๋ธ์์ ์ปค๋ฐ๋ด์ญ์ ์ฝ๊ฒ ํ์ธํ ์ ์๋ค.
๋ํ git log๋ผ๋ ๋ช ๋ น์ด๋ฅผ ํตํด์๋ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
๋ค์ ๋งํด์ ํ์ผ ๋ด์ญ์ด ์ธ์ ์์ ์ด ๋์ด ์ ์ฉ๋์๋์ง ํ์ธ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด์ ์ ์์ ๋ ์ปค๋ฐ ๋ด์ญ์ ๋ค์ ์์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ๊น?
๊ฐ๋ฅํ๋ค
์ด๋ฒ ํฌ์คํ ์์๋ ๊น์์ ์ปค๋ฐ๋ด์ญ์ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋๋ก ํ๊ฒ ๋ค.
# ์ปค๋ฐ์ ๋๋๋ฆฌ๊ณ ์ถ์ ๋
<ํน์ ์ง์ ์ผ๋ก ํ๋ก์ ํธ ์์ฒด๋ฅผ ๋๋๋ ค ๋ณด์>
๋จผ์ git pull ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ, ๋ด ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์์ ๋ด์ญ์ ์ผ์น ์์ผ์ค๋ค.
๊ทธ๋ฆฌ๊ณ ์์ค๋ฅผ ์ถ๊ฐํด์ค๋ค.
์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์ถ๊ฐํ ํ, git log ๋ฅผ ํตํด log๋ฅผ ํ์ธํด๋ณด์.
์ปค๋ฐ ๋ด์ญ์ด ์กฐํ๋๋ค. commit์์ ํด์ ๊ฐ์ ๊ทธ ์ปค๋ฐ์ ์๋ฏธํ๋ฉฐ, git log๋ฅผ ๋น ์ ธ๋์ค๊ณ ์ถ๋ค๋ฉด 'q' ํค๋ฅผ ๋๋ฌ์ฃผ๋ฉด ๋๋ค.
๋ง์ผ ์ด์ค์ ์ ์ผ ์ฒซ ๋ฒ์ ์ฆ my_test์ด๊ธฐ ๋ฒ์ ์ ํ์ผ๋ก ๋๋ฆฌ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ฃผ์ด์ผ ํ ๊น?
๋ฐ๋ก reset ๋ช ๋ น์ ์ฐ๋ฉด ๋๋ค. ์๋์ ๊ฐ์ด ์ ๋ ฅํด์ฃผ๋ฉด ํน์ ์ง์ ์ผ๋ก ๋์๊ฐ๊ณ , ์ดํ์ ์ปค๋ฐ๋ค์ ๋ค ์ง์ฐ๊ฒ ๋ค๋ ์๋ฏธ๊ฐ ๋๋ค.
(์ ์ผ ์ฒซ ๋ฒ์ ์ผ๋ก ํด์ ๊ฐ์ ์ฃผ์๋ค)
๋ค์ ๊น ๋ก๊ทธ๋ฅผ ์ดํด๋ณด๋ฉด ํด๋น ์ปค๋ฐ ๋ง๊ณ ์ดํ์ ์ปค๋ฐ์ ์ฌ๋ผ์ง ๊ฒ์ ํ์ธํ ์๊ฐ ์๋ค.
์ด์ธ์ ์ต์ ์ผ๋ก๋ ์ปค๋ฐ ๋ด์ญ์ ๋ณด๊ดํ๋ฉด์ ๋๋ฆด ์ ์๋ ๋ฑ์ ๋ค์ํ ์ต์ (soft, mixed..)์ด ์กด์ฌํ๋๋ฐ ์ด๋ ์๋ ๊น ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.
git-scm.com/book/ko/v2/Git-๋๊ตฌ-Reset-๋ช ํํ-์๊ณ -๊ฐ๊ธฐ
Git - Reset ๋ช ํํ ์๊ณ ๊ฐ๊ธฐ
์ง๊ธ๊น์ง reset ๋ช ๋ น์ ์คํํ๋ ๊ธฐ๋ณธ ํํ์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ดํด๋ดค๋ค. reset ๋ช ๋ น์ ์คํํ ๋ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ฉด 1๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ ํด์ง ๊ฒฝ๋ก์ ํ์ผ์๋ง ๋๋จธ์ง reset ๋จ๊ณ๋ฅผ ์ ์ฉํ๋ค. ์ด๋ ๋น์ฐํ
git-scm.com
ํ์ง๋ง ์ด ์ํ๋ ์๊ฒฉ์ ์ฅ์์๋ ํด๋น์ด ๋์ง ์๋๋ค. ๊ทธ์ ์์ ์ ๋ก์ปฌ ์ ์ฅ์์๋ง ํด๋น์ด ๋๋ ๊ฒ์ด๋ค.
๋ง์ฝ ์๊ฒฉ์ ์ฅ์์๋ ๋์ผํ๊ฒ ์ปค๋ฐ๋ด์ญ์ ์ ์ฉํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
๊ทธ๋ฅ git push๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ํ์ฌ ๋ก์ปฌ ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ด ๋ค๋ฅด๋ฏ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๊ทธ๋ฅ -f ์ต์ ์ ์ฃผ์ด ๊ฐ์ ๋ก ๋ง์ถฐ์ฃผ๋ฉด ๋๋ค.
์ด๋ ๊ฒ ๋๋ฉด ์๊ฒฉ ์ ์ฅ์์์๋ ๋ก์ปฌ ์ ์ฅ์์ ๋์ผํ๊ฒ ์ ์ฉ์ด ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
# ์ปค๋ฐ ๋ฉ์ธ์ง ๋ณ๊ฒฝ ๋ฐฉ๋ฒ
๋จผ์ ํ์ผ์ ํ๋ ์๋ก ๋ง๋ค๊ณ ๋ด์ฉ์ ๊ทธ๋ฅ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์ ๋ ฅ ํ add, commit ํด์ค๋ค.
์ดํ ์ฝ๋๋ฅผ ์์ ํ ํ, ์ดํด๋ณด์.
์ปค๋ฐ์ ๋์ด์์ง๋ง, ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ "git commit --amend" ๋ฅผ ์คํ์์ผ ์ค๋ค.
์๋์ผ๋ก ํน์ ์๋ํฐ๊ฐ ์คํ๋๋ค.(์ ๋์ค ์๋ํฐ์)
์ฌ๊ธฐ์ ์ฒซ๋ฒ์งธ ์ค์ ์์ ํด์ค๋ค.(์ปค๋ฐ ๋ฉ๋ชจ๋ก ์ถ๊ฐํ ๋ด์ฉ ๋ฑ์ ์จ์ฃผ๋ฉด ๋จ)
git status๋ก ์ํ๋ฅผ ํ์ธํด๋ณด๋ฉด ์๋กญ๊ฒ ์๋ธํจ์๋ฅผ ์ถ๊ฐํ๋ค๊ณ ๋์ค๊ณ , git log๋ฅผ ํด๋ณด๋ฉด
ํ๋ฉด๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋ด์ฉ์ด ์ถ๋ ฅ๋๋ค.
๊ฐ์ ๋ก push ์ํจ ํ ์๊ฒฉ ์ ์ฅ์์์ ํ์ธ์ ํด๋ณด์.
์ปค๋ฐ ๋ด์ญ์ ํ์ธํด๋ณด๋ฉด ์ ์์ ์ผ๋ก ์ปค๋ฐ ๋ฉ์ธ์ง๊ฐ ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค. ํ์ง๋ง ์ฝ๋์๋ ๋ณ๊ฒฝ์ด ์๋ค.
์ฆ, ์ปค๋ฐ ๋ฉ์ธ์ง๋ง ์์ ์ด ์ผ์ด๋ ๊ฒ์ด๊ณ ์ด๋ ๋ณดํต ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์ค์ ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
๋ค์ ์๋์ ๊ฐ์ด ์ปค๋ฐ๋ฉ๋ชจ๋ฅผ add๋ก ๋ฐ๊พธ๊ณ ๋ณ๊ฒฝ์ฌํญ์ git add ํ์ฌ ๋ค์ ๊ทธ ๋ด์ฉ์ commit ํด์ฃผ์๋ค.
์๊ฒฉ ๋ฆฌํฌ์ ์ ์์ ์ผ๋ก ๋ด์ฉ์ด ์ถ๊ฐ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.