Unclear to Clear โ
๋ชจํธํจ์ ๋ช ํํจ์ผ๋ก, ๋ฏ์ค์์ ์ต์ํจ์ผ๋ก ๋ฐ๊พธ๋ฉฐ ์ดํด๋ก ๋์๊ฐ๊ธฐ ์ํ ๊ธฐ๋ก
Git โ
๋ฌด์ง๋ก๋ถํฐ ์ค๋ ๋ถ์์ ์์ญ๋๊น, ๊ทธ๋ ๋ค๋ฉด ๊ณต๋ถํ๋ฉด ๋์ง ์๊ฒ ์ต๋๊น? ์..
์ฒ์์ผ๋ก ๊น๋ฉ์ ์ฌ๋ ค์ ์์
ํ ์ผ์ด ์๊ฒผ๋ค! ์์๋ฆฌ์ ์๋ ๊ฒ์ ์ค๋ช
ํ๋ ๋ฅ๋ ฅ์ด ์ข์ ๊ฐํ๋กฑํธ ๊ฐ๋ฐ์ ๋ถ์ ๊ดด๋กญํ ๋ง์ด ์์๋ด๋ ์ค์ด๋ค.
์ปค๋ฐ โ
- ๋ชจ๋ ํ์ผ ์ปค๋ฐํ๊ธฐ
๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์คํ ์ด์งํ๊ณ ์ปค๋ฐ
md
$ git add .
$ git commit -m "message"- ํน์ ํ์ผ๋ง ์ ํํ์ฌ ์ปค๋ฐํ๊ธฐ
๋ณ๊ฒฝ๋ ํ์ผ ๋ชฉ๋ก์ ํ์ธํ๊ณ ํน์ ํ์ผ๋ง ์ ํํ์ฌ ์ปค๋ฐ
md
// ์์
ํ ๋ด์ญ ํ์ธ
$ git status
// ํน์ ํ์ผ ์คํ
์ด์ง
$ git add ํ์ผ๊ฒฝ๋ก/๋ณต๋ถ
// ์ปค๋ฐ ๋ฉ์ธ์ง
$ git commit -m "message"- ๋ฐฉ๊ธ ํ ์ปค๋ฐ ์ทจ์ํ๊ธฐ
๋ง์ง๋ง ์ปค๋ฐ์ ์ทจ์ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์คํ ์ด์ง ์ด์ ์ํ๋ก ๋๋๋ฆผ
md
$ git reset HEAD^- ๋ฐฉ๊ธ ํ ์ปค๋ฐ ์ทจ์ (์คํ
์ด์ง ์ ์ง)
์ด์ ์ปค๋ฐ์ ์ทจ์ํ์ง๋ง, ๋ณ๊ฒฝ ์ฌํญ์ ์คํ ์ด์ง ์ํ๋ก ์ ์ง
md
$ git reset --soft HEAD^-์์ ํ ํ์ผ์ด ๋ง์๋ฐ, 2๊ฐ๋ง ์ปค๋ฐํ๊ฒ๋๋ฉด $ git reset HEAD^ํ๋ฉด ๋ค์ 100๊ฐ ์ค 2๊ฐ๋ฅผ ์ฐพ์์ผ ํ๋ ๊ท์ฐฎ์ ๋ฐฉ์ง. --soft๋ฅผ ๋ถ์ด๋ฉด ์ปค๋ฐ๋ง ์ทจ์๋๊ณ , ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ง๋จ
๋ด ๋ธ๋์น์ ์ต์ ๋ณ๊ฒฝ์ฌํญ ๋ฐ์ํ๊ธฐ โ
๐ก ์ํฉ ์ ๋ฆฌ โ
- ๋ก์ปฌ
dev๋ธ๋์น๋ ์ต์ ์ํ - ์ดํ
dev์ ์ถ๊ฐ ์์ ๋ฐ์ - ๋ด ๋ธ๋์น์
dev์ ์ถ๊ฐ ์์ ์ ๋ฐ์ํด์ผํจ - ์์ง ๋ด ๋ธ๋์น์์๋ ์์ ํ๋ ์ฝ๋๋ ์์
md
# ๋ด ๋ธ๋์น๋ก ์ด๋
$ git checkout ๋ด ๋ธ๋์น
# ์ต์ dev ๋ธ๋์น ๋ณํฉ
$ git merge devdev๊ฐ ์ต์ ์ํ๊ฐ ์๋์๋ ์๋ค๋ฉด? โ
- ๋ก์ปฌ
dev๊ฐ ์๊ฒฉdev๋ณด๋ค ๋ค์ณ์ ธ ์์ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก, ์ต์dev๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ณํฉํ๋ ๊ฒ์ด ์ข์
md
# dev ๋ธ๋์น๋ก ์ด๋
git checkout dev
# ์ต์ dev ๊ฐ์ ธ์ค๊ธฐ (์๊ฒฉ)
git pull origin dev
# ๋ค์ ๋ด ๋ธ๋์น๋ก ์ด๋
git checkout ๋ด๋ธ๋์น
# ์ต์ dev ๋ณํฉ
git merge devMerge or Rebase๋ก ๋ด ๋ธ๋์น ์์ ๋ฐ์ํ๊ธฐ โ
๐ก ์ํฉ ์ ๋ฆฌ โ
- ๋ก์ปฌ
dev๊ฐ ์ต์ ์ํ์์ ๋ด ๋ธ๋์น ์์ฑ - ๋ด ๋ธ๋์น์์ ์์ ์งํ
- ๋์ค์ ์ถ๊ฐ๋
dev๋ณ๊ฒฝ ์ฌํญ์ ๋ด ๋ธ๋์น์ ๋ฐ์ํด์ผ๋๋ ์ํฉ
Merge โ
md
# ๋ด ๋ธ๋์น๋ก ์ด๋
$ git checkout ๋ด๋ธ๋์น
$ git merge dev- ํ์คํ ๋ฆฌ ์ ์ง
Rebase โ
md
# ๋ด ๋ธ๋์น๋ก ์ด๋
$ git checkout ๋ด๋ธ๋์น
$ git rebase dev