fetch, merge, pull

์ด์ œ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋กœ์ปฌ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…์‹œ๋‹ค.

๋จผ์ € ์‹ค์Šต์„ ํ•ด๋ณด๊ธฐ ์œ„ํ•ด git reset --hard dcff87a ์™€ git push -f ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

1. fetch

fetch๋ž€ ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๊ฐ€์žฅ ์ตœ์‹ ์œผ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ด๋ณด๊ณ , ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ์ด ๋๋Š”์ง€ ์•ˆ๋๋Š”์ง€๋งŒ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ์ค‘์š”ํ•œ ์ ์€ fetch๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฐ”๋กœ ๋กœ์ปฌ์— ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์ œ fetch๋ฅผ ์ง„ํ–‰ํ•ด๋ด…์‹œ๋‹ค.

๋กœ์ปฌ์— ์ €์žฅ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ตœ์‹  ์ปค๋ฐ‹ ๋ชฉ๋ก์„ ํ™•์ธํ•ด๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊ฐ€ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ git fetch <remote ์ด๋ฆ„> ์„ ์‚ฌ์šฉํ•ด๋ด…์‹œ๋‹ค. git fetch upstream ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ์ฐพ์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. merge

Fetch๋ฅผ ํ–ˆ์œผ๋ฉด ์ด์ œ Merge๋ฅผ ํ•ด์•ผ ๋กœ์ปฌ์— ๋ฐ˜์˜์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ git merge <์ฐธ์กฐํ•  ์›๊ฒฉ ์ €์žฅ์†Œ>/<์—…๋ฐ์ดํŠธ๋ฅผ ํ•  ๋ธŒ๋žœ์น˜๋ช…>๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” upstream๊ณผ main ๋ธŒ๋žœ์น˜์ด๋‹ˆ git merge upstream/main ์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. (๋ธŒ๋žœ์น˜๋Š” ๋‹ค์Œ ์žฅ์—์„œ ์„ค๋ช…ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.)

merge๋ฅผ ํ•˜๋ฉด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ GitHub๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„์ง ๊ธฐ๋ก์„ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜›๋‚  ๋ฒ„์ „ ๊ทธ๋Œ€๋กœ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ git push ๋ฅผ ํ†ตํ•ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ฐ˜์˜์„ ํ•ฉ์‹œ๋‹ค.

๊ฐ€์žฅ ์ตœ์‹  ์ปค๋ฐ‹์œผ๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. pull

fetch and merge๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ pull์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

git reset --hard dcff87a ์™€ git push -f ๋ฅผ ๋‹ค์‹œ ์ ์šฉํ•ฉ์‹œ๋‹ค.

์ดํ›„ git pull <์›๊ฒฉ ์ €์žฅ์†Œ ์ด๋ฆ„> <๋ธŒ๋žœ์น˜ ์ด๋ฆ„> ์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” git pull upstream main ์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

fetch์™€ merge๊ฐ€ ํ•œ ๋ฒˆ์— ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. Forkํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

๋‚ด๊ฐ€ Forkํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ํ˜„์žฌ ๋กœ์ปฌ์˜ ๊ธฐ๋ก์ด ์„œ๋กœ ๋‹ค๋ฅธ ์ƒํƒœ์ผ ๋•Œ, ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” GitHub์— ๊ธฐ๋ก๋œ Forkํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

์ด๋•Œ์—๋Š” git pull์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด๊ฐ€ Forkํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ GitHub ๊ธฐ๋ก์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ์—” ๊ฐ•์ œ push ์—†์ด git reset --hard dcff87a ๋งŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ Forkํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๊ฐ€์žฅ ์ตœ์‹  ์ปค๋ฐ‹์œผ๋กœ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ git pull ์„ ์ ์šฉํ•ด๋ด…์‹œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ GitHub์— ๊ธฐ๋ก๋œ ๋‚ด์šฉ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Last updated