GIT์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋
๋ฆฝ์ ์ธ ํ์คํ ๋ฆฌ๋ฅผ ๋ณํฉํ์ง ์๋๋ค. ๋ฌธ์ ์ํฉ์์คํ
ํ๋ก๊ทธ๋๋ฐ ์ค์ต์์, ํ ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ 4๊ฐ์ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด๋ฅผ ์ฌ์ฉํ๋ค.ํ์๋ค์ ๊ฐ์ ํ๋์ ํ์ด์ ๋์ํ๋ ๋ธ๋์น๋ฅผ ์์ฑํด ๋
๋ฆฝ์ ์ผ๋ก ์์
์ ์งํํ๋ค.๋ฌธ์ ๋ ์ต์ข
์ฝ๋๋ฅผ ์ ์ถํ๊ธฐ ์ํด ๊ฐ ๋ธ๋์น๋ฅผ main ๋ธ๋์น๋ก ๋ณํฉํ๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ค.๊นํ๋ธ์์ ์๋์ ๊ฐ์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ฉฐ PR ์์ฑ์ด ๋ถ๊ฐ๋ฅํ๋ค.There isn't anything to compare.main and rfid-and-pir are entirely different commit histories PR์ด ์์ ์ฌ๋ผ๊ฐ์ง ์๋ ์ํฉ์ด์๊ณ , ๊นํ๋ธ ์น ์ธํฐํ์ด์ค๋ง์ผ๋ก๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.๋ก์ปฌ ํ๊ฒฝ์์ CLI(Command Line Interface)๋ก ๊ฐ..
git rebase๋ฅผ ์งํํ๋ค ๋ณด๋ฉด prepare-commit-msg ํ
์ด ์ปค๋ฐ ๋ฉ์์ง ํ์์ ๊ฒ์ฌํ๋ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.์ปค๋ฐ ๋ฉ์์ง๊ฐ ์ ํด์ง ๊ท์น์ ๋ง์ง ์์ผ๋ฉด rebase๊ฐ ์ค๋จ๋๊ณ , ์๋์ ๊ฐ์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋ ์ ์๋ค.COMMIT REJECTED: { [api|web|infra] feat|fix|refactor|chore|test|docs|style|rename: commit ์ ๋ชฉ } ์ ์๋ ํ์์ ๋ง๊ฒ ์์ฑํด์ฃผ์ธ์husky - prepare-commit-msg hook exited with code 1 (error)error: could not commit staged changes.prepare-commit-msg๋ฅผ ๋ ์์ ํ์ฌ ์๋ก์ด ์ปค๋ฐ์ ์์ฑํ๊ธฐ ๋ณด๋ค๋,rebase ์ค์ p..
๋ฌธ์ ์ํฉgit status๋ฅผ ํ์ธํ๋ฉด ๋ถ๋ช
๋ก์ปฌ์ ์ปค๋ฐ์ด ์์ด์ push๊ฐ ํ์ํ๋ค๊ณ ํ๋๋ฐ, git push๊ฐ ์ ๋๋ ์ํฉ. ์๋ฌ ๊ด๋ จ ๋ฉ์์ง๋ค์ ๋ณด๋ฉดerror: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400์๊ฒฉ ํ๋ก์์ ํธ์ถ(RPC)์ด ์คํจํ๋ค, HTTP 400 ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋ค. ์ด๋ ํด๋ผ์ด์ธํธ ์ธก ์์ฒญ์ด ์๋ชป๋์์์ ์๋ฏธํ๋ค.send-pack: unexpected disconnect while reading sideband packet์ฌ์ด๋๋ฐด๋ ํจํท(๋ฐ์ดํฐ ์ ์ก์ ์ํ ํจํท)์ ์ฝ๋ ์ค์ ์๊ฒฉ ์๋ฒ์์ ์ฐ๊ฒฐ์ด ์์์น ๋ชปํ๊ฒ ๋๊ฒผ๋ค๊ณ ํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒํด๊ฒฐ ๋ฐฉ๋ฒ ๋จผ์ ์ดํด๋ณด์. git config --get http.p..
๋ธ๋์น ์ด๋ฆ ๊ท์น๊ธฐ๋ฅ ๊ฐ๋ฐ: feature/login, feature/select-product์ถ์ ์ค๋น: release-1.3, release-1.4๊ธด๊ธ ์์ : hotfix-1.2.1์ปค๋ฐ์ ํด์ผ ๊ทธ๋๋ถํฐ ๋ธ๋์น๋ค. ๋ณํฉ๋ธ๋์น๋ฅผ ์์ฑํ๋ค๋ ๊ฑด, ํ์
์ ์ํ ๊ฒ๊ทธ๋์ ๋ธ๋์น๋ฅผ ๋ณํฉํ๋ค. : ๊นํ๋ธ์์ ๋ณํฉ ๋ฐฉ๋ฒ : fast-forward์ 3waysfast-forwardA branch์์ B branch๋ฅผ ์์ฑํ ์์ ๋ถํฐ,A branch์๋ ์๋ฌด๋ฐ ์ถ๊ฐ ๊ตฌํ์ ํ์ง ์๊ณ B branch๋ง ์ถ๊ฐ ๊ตฌํํ ๋คB branch์ A branch๋ฅผ ํฉ์น๋ฉด -> A์ B๊ฐ ๋ถ์ผ๋ฉด ๋๋จ.Before merge:main: A---B \feature: C---DAfter fast-for..
๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ ์์ฑ๊นํ๋ธ์์ ๋ ํฌ์งํ ๋ฆฌ ์์ฑํ๋ฉด ์น์ ํ๊ฒ ์ธํ
๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค. GitHub token์ฒ์์ผ๋ก ๊นํ๋ธ ์ฐ๊ฒฐํ๋ค๋ฉด usename, password ํ์ํ๋ค.password๋ ๊นํ๋ธ ํจ์ค์๋๊ฐ ์๋๋ผ, ํ ํฐ ์์ฑํด์ ์ง์ด๋์ผ ํ๋ค. ํ๋กํ - Settings - ์ ์ผ ์๋ Developer settings ๋ค์ด๊ฐ์Generate new token (classic) ํด์ฃผ๋ฉด ๋๋ค.๋ณด์, ๊ด๋ฆฌ ํจ์จ์ฑ์ ์ํด ์ฌ๋ฌ ๊ฐ์ ํ ํฐ์ ๋ฐ๊ธํ์ฌ ์ฌ์ฉํ ์ ์๋ค. git clonegit clone ์๊ฒฉ์ ์ฅ์URL ์ ๋๋ ํ ๋ฆฌ ์์ฑ: git clone์ ์คํํ๋ฉด, ์ง์ ํ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด๋ฆ์ ๊ฐ์ง ์ ๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋จ. ์ด ๋๋ ํ ๋ฆฌ๋ ํด๋ก ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๊ฐ ๋๋ ๊ฒgit init ์คํ: ์๋ก ..
commit์ ํ๋ฉด ๊ทธ ํ๋ก์ ํธ์ ๋ฒ์ ์ ํต์งธ๋ก ์ฎ๊ธฐ๋ ๊ฒ!?ํ ์์
์์ ๊ฐ์ฌ๋๊ป์ ์ด๋ ๊ฒ ๋ง์ํ์
จ๋ค. ์ด ๋ง์ฒ๋ผ, ์ปค๋ฐ์ ๋ค์ด๊ฐ browse files ํ๋ฉด ? ๊ทธ ๋น์์ ํ๋ก์ ํธ์ ์ํ, ๋ฒ์ ์ ํ์ธํ ์ ์๋ค.๊ทธ๋ ๋ค๋ฉด Git์ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์๋กญ๊ฒ ์ ์ฅํ๋ ๊ฑธ๊น? -> ๋น์ฐํ ์๋๋ค. Git์ ์ ์ฅ ๋ฐฉ์์ ํจ์จ์ ์ด๊ณ ๊ฐ๋ ฅํ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ,์ด๋ ์ค๋
์ท(Snapshot)๊ณผ ๋ธํ(Delta, Δ ๋ณํ๋)์ ๊ฐ๋
์ ๊ฒฐํฉํ์ฌ ์ด๋ฃจ์ด์ง๋ค. 1. ์ค๋
์ท(Snapshot)Git์ ๊ฐ ์ปค๋ฐ ์์ ์์ ํ๋ก์ ํธ์ ๋ชจ๋ ํ์ผ์ ์ค๋
์ท์ผ๋ก ์ ์ฅํจ. ๊ทธ๋ฌ๋ ๋ชจ๋ ํ์ผ์ ๋งค๋ฒ ๋ณต์ฌํ์ง ์์. ๋ณ๊ฒฝ๋ ํ์ผ๋ง ์๋กญ๊ฒ ์ ์ฅํ๊ณ , ๋ณ๊ฒฝ๋์ง ์์ ํ์ผ์ ์ด์ ์ปค๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํจ.์๋ฅผ ๋ค์ด, 100๊ฐ์ ํ์ผ์ด ์๋ ํ..
GIT๋ก์ปฌ ์์คํ
GIT: ๋ด ์ปดํจํฐ ์์์ ๋ฒ์ ๊ด๋ฆฌ. ๊นํ๋ธ์ ์ํต (๋ฐฑ์
, ๋ณต๊ตฌ, ...)GITHUB: ์๊ฒฉ ์ปดํจํฐ์์ ๋ฐฑ์
๋ด๋นํ๋ ์์คํ
. ๋ด ์ปดํจํฐ์ ๋ณ๋๋ก ๋ฒ์ ๊ด๋ฆฌ. ๋ค๋ฅธ ์ปดํจํฐ์ ๊นํ๋ธ๋ฅผ ํตํด ํ์
git installhttps://git-scm.com/ Git git-scm.comOS์ ๋ง๊ฒ ๊น ์ค์นgit --version์ผ๋ก ํ์ธ ๊ฐ๋ฅ ์(Shell)์
ธ (Shell): ์ด์์ฒด์ ์์ ์ฌ์ฉ์์ ์์คํ
๊ฐ์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ ํ๋ก๊ทธ๋จ.์ฌ์ฉ์๋ ์์ ํตํด ์์คํ
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๊ณ , ์์ ์ด ๋ช
๋ น์ด๋ฅผ ํด์ํ์ฌ ์ด์์ฒด์ ์์ ์คํํ ์ ์๋ ํํ๋ก ๋ณํํ๋ค.์ Shell์ด๋ผ๋ ์ด๋ฆ์?- ์ฌ์ฉ์์ ์ด์์ฒด๋ค ๋ด๋ถ(์ปค๋) ์ฌ์ด์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ธ๋ ์ธต- ๊ป๋ฐ๊ธฐ๋ฅผ ํตํด์ ์์ ์๋ ๋ด์ฉ๋ฌผ์ ์ ๊ทผํ๋ค๋..
Git LFS๋ ? GitHub๋ 100MB ์ด์์ ํ์ผ์ ์ฌ๋ฆด ์ ์๋ค. Git LFS๋ ๋์ฉ๋ ํ์ผ์ ๋ค๋ฃจ๊ธฐ ์ํ ์คํ์์ค ํ๋ก์ ํธ์ด๋ค. Git LFS๋ ๋์ฉ๋์ ํ์ผ๋ค์ Git ๋ด๋ถ์ ํ
์คํธ ํฌ์ธํฐ๋ก ๋์ฒดํ๊ณ , ํ์ผ์ ๋ด์ฉ์ ์๊ฒฉ ์๋ฒ์ ์ ์ฅํ๋๋ก ํ๋ค. Git LFS ๋ ํฌ์งํ ๋ฆฌ clone ์ค๋ฅ? LFS๋ก ๋ฑ๋ก๋ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๊ทธ๋๋ก clone ๋ฐ์ผ๋ฉด Git LFS ์๋ฒ๋ฅผ ์ถ์ ํ ์ ์๋ ํ
์คํธ ํฌ์ธํฐ๋ง ์ ์ฅ๋๊ณ , ์๋์ ์ฝ๋๋ค์ ๋ถ๋ฌ์ค์ง ์์ ์ ์๋ค. ์๋์ ๊ฐ์ ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค. 1. macOS ์์ git-lfs ์ค์นํ๊ธฐ brew install git-lfs 2. Repository clone git-lfs๋ฅผ install ํ๊ธฐ ์ ์ repo์๋ lfs ๊ฐ ์ ์ฉ๋์ง ์๋๋ค. ์ด์ ์ ๋ฐ..
์ปค๋ฐ๋ฉ์์ง๋ฅผ ์์ฑํ ๋, ์ผ๊ด๋ ๊ท์น์ ๋ฐ๋ฅด๋ ์ ํด๋๊ณ ๋ฐ๋ฅด๋๋ก ํ๋ ๊ฒ์ '์ปค๋ฐ๋ฉ์์ง ์ปจ๋ฒค์
'์ด๋ผ๊ณ ํ๋ค. ์ปค๋ฐ๋ฉ์์ง ์ปจ๋ฒค์
์ค์์๋ ๋ง์ด ์ฌ์ฉ๋๋ 'Conventional Commits' ์ ์๊ฐํ๋ ค๊ณ ํ๋ค. Conventional Commits ์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ๋ฉด, ๊ตฌ์กฐ์ ๊ตฌ์ฑ ์์, ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ธํ ๋์์๋ค. Conventional Commits ์ฌ์ฉ ๋ชฉ์ CHANGELOG๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ธฐ ์ํด์(ํฌํจ๋ ์ปค๋ฐ์ ํ์
์ ๊ธฐ๋ฐํ์ฌ) ์ ์์ ๋ฒ์ ์ ์๋์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด์ํ ๋๋ฃ, ํ์ธ, ๊ทธ๋ฆฌ๊ณ ๊ธฐํ ์ดํด๋น์ฌ์์๊ฒ ๋ณํ์ ๋ณธ์ง์ ์ ๋ฌํ๊ธฐ ์ํด์๋น๋์ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์ํํ๊ธฐ ์ํด์๋ ๊ตฌ์กฐํ๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๋ณด์ฌ์ค์ ์ฌ๋๋ค์ด ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ ๋ ์ฝ๋๋ก ํ๊ธฐ ์ํด์ ๊ตฌ์กฐ[์ ์ฉ ๋ฒ์(์ ํ ์ฌํญ)]:..
ใDo it! ๊น & ๊นํ๋ธ ์
๋ฌธใ 3์ฅ. ๊น๊ณผ ๋ธ๋์น ๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค ๋ชฉ์ฐจ 3-1 ๋ธ๋์น๋ 3-2 ๋ธ๋์น ๋ง๋ค๊ธฐ ๋ฐ ์ด๋ํ๊ธฐ 3-3 ๋ธ๋์น ์ ๋ณด ํ์ธํ๊ธฐ 3-4 ๋ธ๋์น ๋ณํฉํ๊ธฐ 3-1 ๋ธ๋์น๋? ๋ธ๋์น(branch) ๋๋ฌด๊ฐ ๊ฐ์ง์์ ์ ์ค๊ธฐ๋ฅผ ๋ป๋ฏ์ด ์ฌ๋ฌ ๊ฐ๋๋ก ํผ์ง๋ ๋ฐ์ดํฐ ํ๋ฆ ๊น์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์์ํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก main ๋ธ๋์น(๊ตฌ master ๋ธ๋์น) ๋ง๋ค์ด์ง ์ฌ์ฉ์๊ฐ ์ปค๋ฐํ ๋๋ง๋ค main ๋ธ๋์น๋ ์ด๋ค ๊ฒ ์ต์ ์ปค๋ฐ์ธ์ง ์ ๋ณด๋ฅผ ๊ฐ์ง. ๊ธฐ์กด ํ์ผ์ main ๋ธ๋์น์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์, ์ ๋ธ๋์น์์ ๊ธฐ์กด ํ์ผ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์. main๋ธ๋์น์์ ์ ๋ธ๋์น๋ฅผ ๋ง๋๋ ๊ฒ์ '๋ถ๊ธฐ(branch)ํ๋ค' ๋ถ๊ธฐํ๋ ๋ธ๋์น๋ฅผ main ๋ธ๋์น์ ํฉ์น๋ ๊ฒ์ '๋ณํฉ(merg..