๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กGit, GitHub (3)

Unfazedโ—๏ธ๐ŸŽฏ

git fetch, git pull

๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ(๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ)๋ฅผ Clone ํ•  ๋•Œ git clone ๋ช…๋ น์€ ์ž๋™์œผ๋กœ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๋ฅผ "origin"์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๋Š” git remote ๋ช…๋ น์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (-v ์˜ต์…˜์œผ๋กœ fetch์™€ push URL ํ™•์ธ ๊ฐ€๋Šฅ) ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž‘์—… ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ(main branch)์— ํ‘ธ์‰ฌํ–ˆ์„ ๋•Œ ๋กœ์ปฌ ์ €์žฅ์†Œ๋Š” ์ด๋ฅผ ๋ฐ”๋กœ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•œ๋‹ค.๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ธ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” fetch๋ฅผ ํ•ด์•ผ๋œ๋‹ค. git fetch๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์›๊ฒฉ ์ €์žฅ์†Œ(remote repository)์—์„œ ๋ฐ์ดํ„ฐ(๋ธŒ๋žœ์น˜, ํƒœ๊ทธ ๋“ฑ)์„ ๊ฐ€์ ธ์˜ด๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋Š” ๋กœ์ปฌ์˜ .git ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋˜์ง€๋งŒ, ์ž๋™์œผ๋กœ ๋ณ‘ํ•ฉ(merge)๋˜..

Git, GitHub 2025. 1. 10. 20:31
git rebase ๋™์ž‘ ๊ณผ์ •, ์ฃผ์˜์‚ฌํ•ญ, merge vs rebase

git rebase : ํ•œ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜ ์œ„๋กœ ์žฌ๋ฐฐ์น˜์‹œํ‚ค๋Š” ๋ช…๋ น์–ด Rebase์˜ ์žฅ์ ๋ณ‘ํ•ฉ ์ปค๋ฐ‹์ด ์—†์–ด ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ์ข‹์ŒํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ปค๋ฐ‹๋“ค์„ ์—ฐ์†์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ์šฉ์ด Rebase ์‚ฌ์šฉ ์˜ˆ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋‘ ๊ฐœ์˜ ๋ธŒ๋žœ์น˜๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํ•ฉ์น˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ์—์„œ ์šฐ๋ฆฌ๋Š” merge ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.$ git chekcout mainSwitched to branch 'main'$ git merge experimentMerge made by the 'recursive' strategy.merge ๋ช…๋ น ์‹คํ–‰์‹œ ํ˜„์žฌ ๋ธŒ๋žœ์น˜(main)๊ฐ€๋ฆฌํ‚ค๋Š” ์ปค๋ฐ‹(c3)๊ฐ€ mergeํ•  ๋ธŒ๋žœ์น˜(experiment)์˜ ์กฐ์ƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ 3-way..

Git, GitHub 2025. 1. 10. 16:24
git merge, merge ์ข…๋ฅ˜(Fast-forward Merge, 3-way Merge), merge conflict ๋ฐœ์ƒ ์ด์œ  ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

git merge : ์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•˜๋Š” ๋ช…๋ น์–ดmerge์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ฐœ๋…1. ํŠน์ • commit์ด ์•„๋‹Œ branch๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒmerge ๋ช…๋ น์–ด๋Š” ์ „์ฒด branch์˜ ์ž‘์—… ๋‚ด์šฉ์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์ด์ง€, ๊ฐœ๋ณ„ commit์„ ์„ ํƒํ•ด์„œ mergeํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.branch๋Š” ์ผ๋ จ์˜ commit๋“ค์˜ ํฌ์ธํ„ฐ์ด๋ฉฐ, ๊ทธ ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹  ์ƒํƒœ(tip)๋ฅผ ๋Œ€ํ‘œํ•œ๋‹ค. 2. ํ•ญ์ƒ ํ˜„์žฌ HEAD ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉmerge ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ, ๋‹ค๋ฅธ branch์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํ˜„์žฌ ์ฒดํฌ์•„์›ƒ(checkout)๋œ branch(HEAD๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” branch)๋กœ ๋ณ‘ํ•ฉ๋œ๋‹ค.์ฆ‰, ํ•ญ์ƒ ํ˜„์žฌ branch ์ชฝ์œผ๋กœ ๋ณ‘ํ•ฉ ๋œ๋‹ค.ex) feature ๋ธŒ๋žœ์น˜๋ฅผ master์— ๋ณ‘ํ•ฉ(merge)ํ•˜๋ ค๋ฉด, ๋จผ์ € master ๋ธŒ..

Git, GitHub 2025. 1. 10. 14:31