[Git] ๋ณํฉ(Merge) ์ถฉ๋ ๋ฐฉ์ง๋ฅผ ์ํ ๋ฆฌ๋ฒ ์ด์ค Rebase
merge ์ถฉ๋ ๋ฐฉ์ง๋ฅผ ์ํ ๋ฆฌ๋ฒ ์ด์ค(Rebase) โญ๏ธ
PR ๋ณด๋ด๊ธฐ ์ ๋ค๋ฅธ ์ฌ๋์ด ์๋ก์ด ์ปค๋ฐ์ ์ถ๊ฐํ ์ํ๋ผ๋ฉด ์ถฉ๋ ๋ฐฉ์ง๋ฅผ ์ํด ๋ก์ปฌ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ต์ ํํ๊ณ (upstream โ origin ๋ ํฌ์งํ ๋ฆฌ ๋๊ธฐํ), ํ์ฌ ์์ ์ค์ธ ๊ธฐ๋ฅ/๋ฒ๊ทธ ๋ธ๋์น์ base๋ฅผ develop ๋ธ๋์น์ ๋ง์ง๋ง ์ปค๋ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ ๋ฆฌ๋ฒ ์ด์ค(Rebase) ์์ ์ด ํ์ํ๋ค — ์ฐธ๊ณ ๊ธ1 | ์ฐธ๊ณ ๊ธ2
โถ ํ์ฌ ์ํ
# ํ์ฌ ์์น feature-branch 8๋ฒ ์ปค๋ฐ
1 - 2 - 3 - 5 (devlop)
\
4 - 6 - 7 - 8 (feature-branch)
develop
๋ธ๋์น์ 1~2 ์ปค๋ฐ : ๋ก์ปฌ ๋ ํฌ์งํ ๋ฆฌ์develop
๋ธ๋์น ์ปค๋ฐdevelop
๋ธ๋์น์ 3~5 ์ปค๋ฐ : ์๊ฒฉ(upstream) ๋ ํฌ์งํ ๋ฆฌ์์ ์๋ก ์ถ๊ฐํ ์ปค๋ฐfeature-branch
๋ธ๋์น์ 4~8 ์ปค๋ฐ : ๋ก์ปฌ์์ ํ์ฌ ์์ ์ค์ธ ์ปค๋ฐ
โท develop
๋ธ๋์น๋ก ์ด๋ ํ ์
์คํธ๋ฆผ๊ณผ ๋๊ธฐํ e.g. git pull upstream develop
# ์ต์ ํ ํ ํ์ฌ ์์น develop 5๋ฒ ์ปค๋ฐ
1 - 2 - 3 - 5 (devlop)
\
4 - 6 - 7 - 8 (feature-branch)
โธ feature-branch
๋ธ๋์น๋ก ์ด๋ ํ ๋ฆฌ๋ฒ ์ด์ค e.g. git rebase develop
# ํ์ฌ ์์น feature-branch 8๋ฒ ์ปค๋ฐ
1 - 2 - 3 - 5 (devlop)
\
4 - 6 - 7 - 8 (feature-branch)
โน origin/feature-branch
๋ก push e.g. git push origin feature-branch
โบ origin ๋ ํฌ์งํ ๋ฆฌ์์ upstream/develop
์ผ๋ก PR
์ถฉ๋ ์ํฉ์์ Rebase
origin/develop
์ต์ ํ (upstream/develop
๊ณผ ๋๊ธฐํ)- [๋ก์ปฌ]
git pull origin develop
- [๋ก์ปฌ]
feature-branch
์ด๋ ํ ๋ฆฌ๋ฒ ์ด์ค e.g.git rebase develop
- ์ถฉ๋ ํ์ผ ํด๊ฒฐ
- ๋ฆฌ๋ฒ ์ด์ค ์งํ e.g.
git rebase --continue
origin/feature-branch
๋ก push
๐ก ์๊ฒฉ ์ ์ฅ์์ ์ต์ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋ผ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด?
๊ฐ์ push๋ก ์งํํ๋ฉด ๋๋ค. ๋ฆฌ๋ฒ ์ด์ค๋ ์ปค๋ฐ์ ๋ณ๊ฒฝ ์ฌํญ(diff)์ patch๋ผ๋ ์์ ์ ์ฅ์์ ์ฎ๊ธด ํ, base ๋ธ๋์น ๋ค์ ์๋ก์ด ์ปค๋ฐ์ ๋ง๋ค๊ณ patch์ ์์ ์ ์ฅํ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํ๋ค. diff๋ ๋์ผํ์ง๋ง commit hash๊ฐ ๋ฌ๋ผ์ ธ์ pull ํ๋ผ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒ.
๊ฐ์ push๋ --force
์ต์
์ ์ฃผ๋ฉด ๋๋ค. ํ์ง๋ง ๋ฆฌ๋ฒ ์ด์คํ๋ ๋์ ๋๊ตฐ๊ฐ ์๋ก์ด commit์ ์๊ฒฉ์ ์ถ๊ฐํ๋ค๋ฉด ๋ฆฌ๋ฒ ์ด์ค ๋ฒ์ ์ ์๊ฒฉ ๋ฒ์ ์ ๋ฎ์ด์ฐ๋ฏ๋ก ์๋ก์ด ์ปค๋ฐ์ ์ฌ๋ผ์ง๋ค.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฆฌ๋ฒ ์ด์คํ ๋ฒ์ ๊ณผ ์๊ฒฉ ๋ฒ์ ์ด ๋์ผํ ๋๋ง(์๊ฒฉ์ ์๋ก์ด ์ปค๋ฐ์ด ์์๋๋ง) ๊ฐ์ push๋ฅผ ์งํํ๋ --force-with-lease
์ต์
์ ์ฌ์ฉํ๋๊ฒ ์ข๋ค.
e.g. git push origin feature-branch --force-with-lease
๋ก์ปฌ ๋ธ๋์น ์ต์ ํ ์ฐธ๊ณ
upstream โ origin sync (์ฐธ๊ณ ๋ฌธ์)
- ํฐ๋ฏธ๋ ์ฌ์ฉ ์
- local์์ upstream fetch : e.g.
git fetch upstream
- local์์ ๊ฐ์ฅ ์ต์ commit์ผ๋ก checkout : e.g.
git checkout develop
- upstream ๋ณ๊ฒฝ์ฌํญ์ ํ์ฌ ๋ธ๋์น์ merge : e.g.
git merge upstream/develop
- local ๋ณ๊ฒฝ์ฌํญ์ origin ๋ ํฌ์งํ ๋ฆฌ๋ก push : e.g.
git push origin develop
- local์์ upstream fetch : e.g.
- GitHub CLI ์ฌ์ฉ์
- fetch ๋ฐ merge : e.g.
gh repo sync owner/cli-fork
- local ๋ณ๊ฒฝ์ฌํญ์ origin ๋ ํฌ์งํ ๋ฆฌ๋ก push
- fetch ๋ฐ merge : e.g.
์๊ฒฉ ์ ์ฅ์์ ์์ธ ์ ๋ณด ํ์ธ
git remote show origin
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[TS] useQuery, useMutation์ ์ ๋ค๋ฆญ ํ์ ์ดํด๋ณด๊ธฐ / Base Query ํ ๋ง๋ค๊ธฐ
[TS] useQuery, useMutation์ ์ ๋ค๋ฆญ ํ์ ์ดํด๋ณด๊ธฐ / Base Query ํ ๋ง๋ค๊ธฐ
2024.05.12 -
[React] ๋ฆฌ์กํธ ์ฟผ๋ฆฌ(React Query) staleTime์ ์ค์ ํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
[React] ๋ฆฌ์กํธ ์ฟผ๋ฆฌ(React Query) staleTime์ ์ค์ ํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
2024.05.12 -
[React] svg ํ์ผ → ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ๋ณํํ๊ธฐ - React SVGR
[React] svg ํ์ผ → ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ๋ณํํ๊ธฐ - React SVGR
2024.05.12 -
[React] ๋ฆฌ์กํธ Context API ๋ ๋๋ง ์ต์ ํํ๊ธฐ
[React] ๋ฆฌ์กํธ Context API ๋ ๋๋ง ์ต์ ํํ๊ธฐ
2024.05.11