ALOHA CLASS
/
CI/CD
/
Git
Search
Share
Git x Github ์ค์ต
Github ์๊ฒฉ ์ ์ฅ์ ๋ง๋ค๊ธฐ
Github ํ์ ์ด๋ํ๊ธฐ
Git Clone
git Clone
์์:
Git Clone
branch ์์ฑ ๋ฐ ๋ฐ์
๊ฐ๊ฐ์ ๋ธ๋์น๋ ๋ค๋ฅธ ๋ธ๋์น์ ์ํฅ์ ๋ฐ์ง ์๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ ์์ ์ ๋์์ ์งํํ ์ ์์ต๋๋ค.
์์ ์ด ์๋ฃ๋๋ฉด ๋ฉ์ธ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ๋ณํฉํ์ฌ ์์ ์ ์๋ฃํ ์ ์์ต๋๋ค.
Git Branch ์์ฑํ๊ธฐ
Git Branch ํ์ธํ๊ธฐ
branch ์์ฑ ๋ฐ ์ ํ
branch
switch
checkout
Git Commit
Git Commit ๋ช ๋ น์ด
Git Commit
commit
Git Push
commit๋ ๋ณ๊ฒฝ ์ฌํญ์ GitHub์ ๊ฐ์ ์๊ฒฉ ์ ์ฅ์์ ๋๊ธฐํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๊ธฐ๋ณธ ๋ช ๋ น์ด
์์:
Git Push
push
Git Pull
๊ธฐ๋ณธ ๋ช ๋ น์ด
์์:
์ฃผ์ ์ต์
Git Pull
pull
Git fetch
Git fetch๋ ์๊ฒฉ ์ ์ฅ์์ ์๋ก์ด ๋ธ๋์น์ ๊ทธ ๋ณ๊ฒฝ์ฌํญ๋ ๊ฐ์ ธ์ต๋๋ค. ๋ก์ปฌ์ ์๋ ์ ๋ธ๋์น๊ฐ ์๊ฒฉ์ ์๋ค๋ฉด, ์๊ฒฉ ๋ธ๋์น๋ก ๊ฐ์ ธ์ค๊ฒ ๋ฉ๋๋ค.
์๊ฒฉ์ ์ ๋ธ๋์น๊ฐ ๋ก์ปฌ์ ๋ฐ์๋จ
โข
์๊ฒฉ ๋ธ๋์น ๋ชฉ๋ก ํ์ธ
Git fetch
fetch
๋ก์ปฌ ๋ธ๋์น๊ฐ ์๊ฒฉ ๋ธ๋์น๋ฅผ ์ถ์ ํ๋๋ก ์ค์ ํ์ฌ, ์ดํ
git push
๋
git pull
๋ช ๋ น์ด๋ฅผ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ๋ช ๋ น์ด
์์:
๋๋ ์งง์ ํํ:
Git Branch --set-upstream-to ์ต์
Git Branch
branch
Git Merge
์๋ก ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ํ๋๋ก ํตํฉํ๋ Git์ ํต์ฌ ๋ช ๋ น์ด๋ก, ๋ธ๋์น ๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ํ๋์ ๋ธ๋์น๋ก ๊ฒฐํฉํฉ๋๋ค.
Git Merge ๋ช ๋ น์ด
๊ธฐ๋ณธ ๋ช ๋ น์ด
ํ์ฌ ๋ธ๋์น์ ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ๋ณํฉ
๋ณํฉ ์ปค๋ฐ ๋ฉ์์ง ์์ฑ
Git Merge
merge
Git Conflict(์ถฉ๋)์ด๋?
์ถฉ๋์ด ๋ฐ์ํ๋ ์ผ๋ฐ์ ์ธ ์ํฉ
โข
์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์ผํ ํ์ผ์ ๋์ผํ ์ค์ ์์ ํ ๋
โข
ํ ๋ธ๋์น์์ ํ์ผ์ ์์ ํ๊ณ , ๋ค๋ฅธ ๋ธ๋์น์์ ๊ฐ์ ํ์ผ์ ์ญ์ ํ์ ๋
โข
์๋ก ๋ค๋ฅธ ๋ธ๋์น์์ ๊ฐ์ ์ด๋ฆ์ ํ์ผ์ ์์ฑํ์ ๋
Git Conflict & ์ถฉ๋ ํด๊ฒฐ
conflict
Git Pull Request
ํนํ ํ์ ํ๊ฒฝ์์ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ๋ณํฉ ๊ณผ์ ์ ์๊ฐ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค.
๊ธฐ๋ณธ ๊ฐ๋
์ ์ฒด ํ๋ฆ
Git Pull Request
pull request
PR
GitHub Fork๋?
Fork์ ํน์ง
Git fork
fork
Git Amend
Git Amend๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ปค๋ฐ์ ์์ ํ ์ ์๋ ๊ธฐ๋ฅ์ผ๋ก, ์ปค๋ฐ ๋ฉ์์ง๋ ํ์ผ ๋ด์ฉ์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํฉ๋๋ค.
Amend๋?
Amend๋ "์์ ํ๋ค"๋ผ๋ ๋ป์ผ๋ก, Git์์๋ ๋ง์ง๋ง ์ปค๋ฐ์ ๋ค์ ์์ฑํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์๋ก์ด ์ปค๋ฐ์ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ, ๊ธฐ์กด ์ปค๋ฐ์ ๋ฎ์ด์ฐ๋ ๋ฐฉ์์ ๋๋ค.
Git Amend ๋ช ๋ น์ด
๊ธฐ๋ณธ ๋ช ๋ น์ด
๋ง์ง๋ง ์ปค๋ฐ์ ์์ ํฉ๋๋ค.
ํธ์ง๊ธฐ๊ฐ ์ด๋ฆฌ๋ฉด์ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
Amend ์ต์
์ฌ์ฉ ์์
Git amend
commit
Git Cherry-pick
Git Cherry-pick์
ํน์ ์ปค๋ฐ์ ์ ํํ์ฌ ํ์ฌ ๋ธ๋์น์ ์ ์ฉ
ํ๋ ๊ธฐ๋ฅ์ผ๋ก, ๋ค๋ฅธ ๋ธ๋์น์ ํน์ ๋ณ๊ฒฝ์ฌํญ๋ง ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
Cherry-pick์ด๋?
Cherry-pick์ ๋ง ๊ทธ๋๋ก "์ฒด๋ฆฌ๋ฅผ ๊ณจ๋ผ ๋จน๋๋ค"๋ ์๋ฏธ๋ก, ๋ค๋ฅธ ๋ธ๋์น์ ์๋ ์ฌ๋ฌ ์ปค๋ฐ ์ค์์ ์ํ๋ ์ปค๋ฐ๋ง ์ ํํด์ ํ์ฌ ๋ธ๋์น์ ์ ์ฉํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
Git Cherry-pick ๋ช ๋ น์ด
๊ธฐ๋ณธ ๋ช ๋ น์ด
์ง์ ํ ์ปค๋ฐ์ ํ์ฌ ๋ธ๋์น์ ์ ์ฉํฉ๋๋ค.
์ปค๋ฐ ํด์๋ ํ์๊ฐ์ผ๋ก, ์ ์ฉํ๊ณ ์ ํ๋ ์ปค๋ฐ์ ํด์๋ฅผ ๋ฐ๋์ ์ง์ ํด์ผ ํฉ๋๋ค.
Cherry-pick ์ต์
Git cherry-pick
cherry-pick
Git Reset
Git Reset์
์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๋๋๋ฆฌ๊ณ ์์ ๋๋ ํ ๋ฆฌ์ ์ํ๋ฅผ ๋ณ๊ฒฝ
ํ๋ ๋ช ๋ น์ด๋ก, HEAD ํฌ์ธํฐ๋ฅผ ์ด์ ์ปค๋ฐ์ผ๋ก ์ด๋์์ผ ๋ณ๊ฒฝ์ฌํญ์ ๊ด๋ฆฌํฉ๋๋ค.
Git Reset ๋ช ๋ น์ด
๊ธฐ๋ณธ ๋ช ๋ น์ด
HEAD๋ฅผ ์ง์ ํ ์ปค๋ฐ์ผ๋ก ์ด๋์ํค๊ณ , ์ต์ ์ ๋ฐ๋ผ ์คํ ์ด์ง ์์ญ๊ณผ ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
์ต์ ์ ์๋ตํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก
--mixed
๋ชจ๋๋ก ๋์ํฉ๋๋ค.
Reset ์ต์
Git reset
reset
Git Revert
Git Revert๋
์ด์ ์ปค๋ฐ์ ์ทจ์ํ๊ณ ๋๋๋ฆฌ๋ ๋ช ๋ น์ด
๋ก, ์์ ๋ด์ญ์ ์ ์งํ๋ฉด์ ์์ ํ๊ฒ ๋ณ๊ฒฝ์ฌํญ์ ๋๋๋ฆด ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค.
Git Revert ๋ช ๋ น์ด
๊ธฐ๋ณธ ๋ช ๋ น์ด
ํน์ ์ปค๋ฐ์ ๋ณ๊ฒฝ์ฌํญ์ ๋๋๋ฆฝ๋๋ค.
์๋ก์ด ์ปค๋ฐ์ ์์ฑํ์ฌ ์ด์ ์ปค๋ฐ์ ์ทจ์ํ๋ฏ๋ก, ํ์คํ ๋ฆฌ๊ฐ ๋ณด์กด๋ฉ๋๋ค.
Revert ์ต์
Git revert
revert
Git Stash
Git Stash๋
ํ์ฌ ์์ ์ค์ธ ๋ณ๊ฒฝ์ฌํญ์ ์์๋ก ์ ์ฅํ๊ณ
๋์ค์ ๋ค์ ์ ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ๊นจ๋ํ๊ฒ ์ ์งํ๋ฉด์
๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํํ๊ฑฐ๋ ๊ธด๊ธํ ์์ ์ ์ฒ๋ฆฌํ ๋ ์ ์ฉ
ํฉ๋๋ค.
Stash๋?
Stash๋ ํ์ฌ ์์ ์ค์ธ ๋ณ๊ฒฝ์ฌํญ(์์ ๋ ํ์ผ, ์คํ ์ด์ง๋ ํ์ผ)์ ์์ ์ ์ฅ์์ ๋ณด๊ดํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ฅผ ํตํด ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง์ง๋ง ์ปค๋ฐ ์ํ๋ก ๋๋๋ฆด ์ ์์ผ๋ฉฐ, ๋์ค์ ์ ์ฅํ ๋ณ๊ฒฝ์ฌํญ์ ๋ค์ ๋ถ๋ฌ์ ์์ ์ ๊ณ์ํ ์ ์์ต๋๋ค.
Git Stash ๋ช ๋ น์ด
๊ธฐ๋ณธ ๋ช ๋ น์ด
ํ์ฌ ์์ ์ค์ธ ๋ณ๊ฒฝ์ฌํญ์ ์์๋ก ์ ์ฅํฉ๋๋ค.
์์ ๋ ์ถ์ ํ์ผ๊ณผ ์คํ ์ด์ง๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ชจ๋ stash์ ์ ์ฅํฉ๋๋ค.
Git statsh
stash
Git Release
Git Release๋ ์ํํธ์จ์ด์ ํน์ ๋ฒ์ ์ ๊ณต์์ ์ผ๋ก ๋ฐฐํฌํ๋ ๊ณผ์ ์ผ๋ก, ์์ ์ ์ธ ์ฝ๋ ์ค๋ ์ท์ ํ๊ทธ๋ก ํ์ํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ํต์ฌ ๊ธฐ๋ฅ์ ๋๋ค.
๋ฆด๋ฆฌ์ค(Release)๋?
๋ฆด๋ฆฌ์ค๋ ๊ฐ๋ฐ๋ ์ํํธ์จ์ด์ ํน์ ๋ฒ์ ์ ์ฌ์ฉ์์๊ฒ ๊ณต์์ ์ผ๋ก ๋ฐฐํฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. Git์์๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ปค๋ฐ์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ์ผ๋ก ํ์ํ๊ณ , ์ด๋ฅผ ํตํด ์์ ์ ์ธ ๋ฒ์ ์ ๊ด๋ฆฌํฉ๋๋ค. โข ๋ฆด๋ฆฌ์ค๋ ์ฃผ๋ก ์๋งจํฑ ๋ฒ์ ๋(Semantic Versioning)์ ๋ฐ๋ผ v1.0.0, v2.1.3๊ณผ ๊ฐ์ ํ์์ผ๋ก ๋ช ๋ช ๋ฉ๋๋ค. โข ๊ฐ ๋ฆด๋ฆฌ์ค๋ ๋ณ๊ฒฝ ์ฌํญ, ๋ฒ๊ทธ ์์ , ์๋ก์ด ๊ธฐ๋ฅ ๋ฑ์ ํฌํจํ ๋ฆด๋ฆฌ์ค ๋ ธํธ์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. โข GitHub, GitLab ๋ฑ์ ํ๋ซํผ์์๋ ๋ฆด๋ฆฌ์ค ํ์ด์ง๋ฅผ ํตํด ์์ค ์ฝ๋, ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋ฑ์ ๋ค์ด๋ก๋ํ ์ ์๊ฒ ์ ๊ณตํฉ๋๋ค.
Git Release ๋ช ๋ น์ด
๊ธฐ๋ณธ ๋ช ๋ น์ด
ํน์ ์ปค๋ฐ์ ํ๊ทธ๋ฅผ ์์ฑํ์ฌ ๋ฆด๋ฆฌ์ค ๋ฒ์ ์ ํ์ํฉ๋๋ค.
ํ๊ทธ ์ด๋ฆ๊ณผ ๋ฉ์์ง๋ฅผ ์์ฑํ์ฌ ๋ฆด๋ฆฌ์ค์ ์๋ฏธ๋ฅผ ๋ช ํํ ํฉ๋๋ค.
Release ๊ด๋ จ ๋ช ๋ น์ด
Git Release
tag