ํ์ ์ ์ํ Fork์ Pull Request: GitHub๋ก ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๋ฒ ๐
์คํ ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ฑฐ๋, ํ ํ๋ก์ ํธ์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด GitHub์ Fork์ Pull Request ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค. Fork๋ ์๋ณธ ์ ์ฅ์์ ๋ณต์ฌ๋ณธ์ ์์ ์ ์ ์ฅ์์ ์์ฑํ๋ ์์ ์ด๋ฉฐ, Pull Request๋ ์์ ํ ์ฝ๋๋ฅผ ์๋ณธ ํ๋ก์ ํธ์ ๋ฐ์ํด๋ฌ๋ผ๊ณ ์์ฒญํ๋ ์ ์ฐจ ์ ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ Fork์ Pull Request์ ๊ฐ๋ , ํ์ฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ฝ๋ ๋ฆฌ๋ทฐ ๊ณผ์ ์ ์์๋ณด๊ฒ ์ต๋๋ค.
1. Fork๋ ๋ฌด์์ธ๊ฐ?
Fork(ํฌํฌ) ๋ ๋ค๋ฅธ ์ฌ๋์ ์ ์ฅ์๋ฅผ ๋ณต์ฌํ์ฌ ์์ ์ GitHub ๊ณ์ ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ณผ์ ์ ๋๋ค. Fork๋ ์คํ ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ณ ์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก์ ํธ์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ฑฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ ํ ๋ Fork๋ฅผ ํตํด ์์ ์ ์์ํ ์ ์์ต๋๋ค.
Fork์ ํ์์ฑ
- ๋ ๋ฆฝ์ ์ธ ์์ ๊ณต๊ฐ : Fork๋ฅผ ํตํด ์๋ณธ ํ๋ก์ ํธ๋ฅผ ์์์ํค์ง ์๊ณ ์์ ํ๊ฒ ์ฝ๋๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
- ๊ฐ๋ณ ์ ์ฅ์๋ก ์ ์ฅ : ๊ฐ์ธ ๊ณ์ ์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์์ ๋กญ๊ฒ ์์ ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ ์ ์์ต๋๋ค.
- ๊ธฐ์ฌ์ ํ์ ์ ๊ธฐ๋ณธ ๋จ๊ณ : ์คํ ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ ์ํด ํ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ ๋๋ค.
GitHub์์ Fork ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์๋ณธ ์ ์ฅ์์ ๋ณต์ฌ๋ณธ์ด ์์ฑ๋ฉ๋๋ค. ์ด ๋ณต์ฌ๋ณธ์์ ์์ ๋กญ๊ฒ ์์ ํ ํ Pull Request๋ฅผ ํตํด ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
2. ํ๋ก์ ํธ Forkํ๊ธฐ: ๋จ๊ณ๋ณ ๊ฐ์ด๋
GitHub์์ ํ๋ก์ ํธ๋ฅผ Forkํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค. ์๋ ๋จ๊ณ๋ณ ๊ฐ์ด๋๋ฅผ ํตํด ์งํํด๋ณด์ธ์.
- Forkํ ์ ์ฅ์๋ก ์ด๋ : GitHub์์ Forkํ๊ณ ์ถ์ ์ ์ฅ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- Fork ๋ฒํผ ํด๋ฆญ : ํ์ด์ง ์ฐ์ธก ์๋จ์
Fork
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. - ๊ฐ์ธ ์ ์ฅ์์ Fork ์์ฑ : Fork๊ฐ ์๋ฃ๋๋ฉด ๊ฐ์ธ GitHub ๊ณ์ ์ ํด๋น ์ ์ฅ์์ ๋ณต์ฌ๋ณธ์ด ์์ฑ๋ฉ๋๋ค.
- ๋ก์ปฌ ํ๊ฒฝ์ผ๋ก ๋ณต์ : ์์ ์ ๊ณ์ ์ Forkํ ์ ์ฅ์๋ฅผ ๋ก์ปฌ ํ๊ฒฝ์ ํด๋ก ํ์ฌ ์์ ์ ์์ํฉ๋๋ค.
git clone https://github.com/username/forked-repository.git
์ด์ ๋ณต์ ํ ํ๋ก์ ํธ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํ๊ฑฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
3. Pull Request ์์ฑํ๊ธฐ: ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ
Forkํ ํ๋ก์ ํธ์์ ์์ ์ ์๋ฃํ๋ค๋ฉด, Pull Request(PR)๋ฅผ ํตํด ์๋ณธ ํ๋ก์ ํธ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํด๋ฌ๋ผ๊ณ ์์ฒญ ํ ์ ์์ต๋๋ค. Pull Request๋ ์๋ณธ ์ ์ฅ์์ ๊ด๋ฆฌ์๊ฐ ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ๋ณํฉํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ธฐ๋ฅ์ ๋๋ค.
Pull Request ์์ฑ ๋ฐฉ๋ฒ
- ์ ๋ธ๋์น ์์ฑ : ๊ธฐ๋ฅ์ด๋ ์์ ์์
์ ์ํ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค.
bash git checkout -b feature-new-ui
- ๋ณ๊ฒฝ ์ฌํญ ์ปค๋ฐ : ์ฝ๋ ์์ ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ ์์
์ ์๋ฃํ ํ, ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค.
bash git add . git commit -m "์ UI ๊ธฐ๋ฅ ์ถ๊ฐ"
- ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ : ์์ ํ ๋ธ๋์น๋ฅผ ์์ ์ GitHub ์ ์ฅ์์ ํธ์ํฉ๋๋ค.
bash git push origin feature-new-ui
- Pull Request ์์ฑ : GitHub์์
Pull Request
ํญ์ผ๋ก ์ด๋ํ์ฌ ์๋ก์ด PR์ ์์ฑํฉ๋๋ค. PR ์ ๋ชฉ๊ณผ ์ค๋ช ์ ์์ฑํ๊ณ , ์์ ๋ด์ฉ๊ณผ ๋ณ๊ฒฝ ์ฌํญ์ ์์ธํ ์ค๋ช ํฉ๋๋ค.
4. ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํตํ ํ์ ํ๋ก์ธ์ค
Pull Request๊ฐ ์์ฑ๋๋ฉด ํ๋ก์ ํธ ๊ด๋ฆฌ์๋ ํ์๋ค์ด ์ฝ๋๋ฅผ ๋ฆฌ๋ทฐ ํฉ๋๋ค. ์ด ๊ณผ์ ์ ํตํด ์ฝ๋์ ํ์ง์ ๋์ด๊ณ , ์ค๋ฅ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
์ฝ๋ ๋ฆฌ๋ทฐ ์ ์ฐจ
- ๋ฆฌ๋ทฐ ์์ฒญ : PR์ ์์ฑํ๋ฉด์ ๊ด๋ฆฌ์๋ ๋ฆฌ๋ทฐ์ด๋ฅผ ์ง์ ํ์ฌ ๋ฆฌ๋ทฐ๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๊ฒํ ๋ฐ ํผ๋๋ฐฑ : ๋ฆฌ๋ทฐ์ด๊ฐ ์ฝ๋์ ํ์ง, ์ฑ๋ฅ, ์ ์ง ๋ณด์์ฑ ๋ฑ์ ํ๊ฐํ๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค.
- ์์ ํ ์ฌ๊ฒํ : ํผ๋๋ฐฑ์ ๋ฐ์ํ์ฌ ์ฝ๋๋ฅผ ์์ ํ๊ณ , ๋ค์ ๊ฒํ ๋ฅผ ์์ฒญํฉ๋๋ค.
- ๋ณํฉ : ์ต์ข ์ ์ผ๋ก ์น์ธ๋ PR์ ๋ฉ์ธ ๋ธ๋์น์ ๋ณํฉ๋ฉ๋๋ค.
Fork์ Pull Request์ ๊ฐ๋ ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ ๋น๊ต ํ
๊ธฐ๋ฅ | ์ค๋ช | ์ฃผ์ ๋ชฉ์ |
---|---|---|
Fork | ์๋ณธ ์ ์ฅ์์ ๋ณต์ฌ๋ณธ์ ์์ฑ | ๋ ๋ฆฝ์ ์ผ๋ก ์์ ๊ฐ๋ฅ |
Pull Request | ์๋ณธ ์ ์ฅ์๋ก ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ์ ์์ฒญ | ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ๋ณํฉ ์ ์ฐจ๋ฅผ ํตํด ํ์ ๊ฐ๋ฅ |
์ฝ๋ ๋ฆฌ๋ทฐ | Pull Request์ ๋ํด ํผ๋๋ฐฑ ์ ๊ณต | ์ฝ๋ ํ์ง ํฅ์, ์ค๋ฅ ๋ฐฉ์ง |
์คํ ์์ค ๊ธฐ์ฌ ํํฉ๊ณผ ํธ๋ ๋ ๐
์คํ ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๊ฐ๋ฐ์๋ค์ ๋งค๋ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. GitHub ํต๊ณ์ ๋ฐ๋ฅด๋ฉด, 2024๋ ํ์ฌ GitHub์๋ 6์ฒ๋ง ๊ฐ ์ด์์ ์คํ ์์ค ํ๋ก์ ํธ ๊ฐ ์ด์ ์ค์ด๋ฉฐ, ์ ์ธ๊ณ์ ์๋ฐฑ๋ง ๋ช ์ ๊ฐ๋ฐ์๋ค์ด ๊ธฐ์ฌํ๊ณ ์์ต๋๋ค. ํนํ Pull Request๋ฅผ ํตํ ๊ธฐ์ฌ๋ ํ์ ์ ํต์ฌ ์์๋ก ์๋ฆฌ ์ก๊ณ ์์ต๋๋ค.
FAQ ๐ค
Q1. Fork์ Clone์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
A1. Fork๋ ๋ค๋ฅธ ์ฌ๋์ ์ ์ฅ์๋ฅผ ์์ ์ GitHub ๊ณ์ ์ ๋ณต์ฌํ๋ ๊ณผ์ ์ด๋ฉฐ, Clone์ ์์ ์ ๋ก์ปฌ ์ปดํจํฐ์ ๋ณต์ฌํ์ฌ ์์
ํ๋ ๊ฒ์
๋๋ค.
Q2. Pull Request๋ฅผ ํตํด ๋ฌด์์ ํ ์ ์๋์?
A2. Pull Request๋ ์์ ํ ์ฝ๋๋ฅผ ์๋ณธ ์ ์ฅ์์ ๋ฐ์ํด๋ฌ๋ผ๊ณ ์์ฒญ ํ๋ ๊ฒ์ผ๋ก, ์ฝ๋ ๋ฆฌ๋ทฐ์ ํ์
์ ์ฐจ๋ฅผ ๊ฑฐ์ณ ๋ณํฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
Q3. ์ฝ๋ ๋ฆฌ๋ทฐ๊ฐ ๊ผญ ํ์ํ๊ฐ์?
A3. ๋ค, ์ฝ๋ ๋ฆฌ๋ทฐ๋ ์ฝ๋์ ํ์ง๊ณผ ์์ ์ฑ์ ๋์ด๊ธฐ ์ํด ํ์ํฉ๋๋ค. ํ์๋ค๊ณผ์ ํ์
์์๋ ํ์์ ์ธ ์ ์ฐจ์
๋๋ค.
Q4. Forkํ ์ ์ฅ์๋ฅผ ์๋ณธ๊ณผ ๋๊ธฐํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?
A4. ์๋ณธ ์ ์ฅ์์ ์ต์ ์ฝ๋๋ฅผ ์์ ์ Fork ์ ์ฅ์์ ๋ฐ์ํ๋ ค๋ฉด
git fetch upstream
๋ฐ
git merge
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ธฐํํ ์ ์์ต๋๋ค.
Q5. PR์ด ๊ฑฐ์ ๋๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
A5. ํผ๋๋ฐฑ์ ๋ฐ์ํ์ฌ ์ฝ๋๋ฅผ ์์ ํ ํ, PR์ ๋ค์ ์์ฒญํ๊ฑฐ๋, ์๋ก์ด PR์ ์์ฑํ ์ ์์ต๋๋ค.
Fork์ Pull Request๋ฅผ ์ ํ์ฉํ๋ฉด ํ์ ๊ณผ ์คํ ์์ค ํ๋ก์ ํธ ๊ธฐ์ฌ๊ฐ ํจ์ฌ ๋ ์ฌ์์ง๋๋ค. ์ด ๋ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ตํ๊ณ ์ฌ์ฉํ์ฌ, ์ํํ ํ ํ๋ก์ ํธ์ ์คํ ์์ค ๊ธฐ์ฌ๋ฅผ ๊ฒฝํํด๋ณด์ธ์!
๋๊ธ