fetch, merge, pull
์ด์ ์๊ฒฉ ์ ์ฅ์์ ์๋ ์ฝ๋๋ฅผ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์์๋ด ์๋ค.
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