์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ํญํด99
- tcp ์ธ๊ทธ๋จผํธ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- ํ๋ ์ ๊ตฌ์กฐ
- ์ฐ๋ถํฌdb
- ์ฝ๋ฉํ ์คํธ์ค๋น
- xv6
- ํ ํฐ ๋ฒ์ค
- ์์๋ฒํธ
- ์ค๋ ๋
- reducible
- ๋น์ฃผ๊ธฐ์ ํธ
- ํ๋ก์ด๋์์
- ์ค๋ฅ์ ์ด
- IEEE 802
- git merge
- til
- 99ํด๋ฝ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ฃผ๊ธฐ์ ํธ
- ์ค๋ธ์
- ์ค๋ฅ๊ฒ์ถ
- mariadb
- leetcode
- tcp ํ๋กํ ์ฝ
- ๊ฐ๋ฐ์์ทจ์
- i-type
- ๋ฐ์ดํฐ ์ ์ก
- well known ํฌํธ
- Today
- Total
Unfazedโ๏ธ๐ฏ
git rebase ๋์ ๊ณผ์ , ์ฃผ์์ฌํญ, merge vs rebase ๋ณธ๋ฌธ
git rebase : ํ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ๋ค๋ฅธ ๋ธ๋์น ์๋ก ์ฌ๋ฐฐ์น์ํค๋ ๋ช ๋ น์ด
Rebase์ ์ฅ์
- ๋ณํฉ ์ปค๋ฐ์ด ์์ด ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ์ ๋ฆฌ ๊ฐ๋ฅํ๊ณ ๊ฐ๋ ์ฑ์ด ์ข์
- ํน์ ๊ธฐ๋ฅ์ ๋ํ ์ปค๋ฐ๋ค์ ์ฐ์์ ์ผ๋ก ๋ณผ ์ ์์ด ์ฝ๋ ๋ฆฌ๋ทฐ๊ฐ ์ฉ์ด
Rebase ์ฌ์ฉ ์
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ ๊ฐ์ ๋ธ๋์น๋ก ๋๋์ด์ง ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ํฉ์น๊ณ ์ถ์ ์ํฉ์์ ์ฐ๋ฆฌ๋ merge ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
$ git chekcout main
Switched to branch 'main'
$ git merge experiment
Merge made by the 'recursive' strategy.
merge ๋ช ๋ น ์คํ์ ํ์ฌ ๋ธ๋์น(main)๊ฐ๋ฆฌํค๋ ์ปค๋ฐ(c3)๊ฐ mergeํ ๋ธ๋์น(experiment)์ ์กฐ์์ด ์๋๋ฏ๋ก 3-way merge๋ฅผ ํ๋ค.
๋ฐ๋ผ์ ์๋์ ๊ฐ์ด merge commit(c5)๊ฐ ์์ฑ๋๊ณ main ๋ธ๋์น๋ merge commit์ ๊ฐ๋ฆฌํค๊ฒ ๋๋ค.
์ด์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ rebase๋ฅผ ์ฌ์ฉํ๋ฉด merge commit ์์ฑ์์ด ๊น๋ํ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ์ ์งํ๋ฉฐ ์์ ์ด ๊ฐ๋ฅํ๋ค.
$ git checkout experiment
$ git rebase main
First, rewinding head to replay your work on top of it...
Applying: added staged command
rebase ๋์ ๊ณผ์
- ๊ณตํต ์กฐ์ ์ฐพ๊ธฐ
- ํ์ฌ ๋ธ๋์น(experiment)์ rebase ๋์ ๋ธ๋์น(main)์ ๊ณตํต ์กฐ์์ ์ฐพ์
- ๋ณ๊ฒฝ์ฌํญ(diff) ์์ง
- ํ์ฌ ๋ธ๋์น์ ๊ฐ ์ปค๋ฐ๋ค์ด ๊ฐ์ง๊ณ ์๋ ๋ณ๊ฒฝ์ฌํญ์ ์์ง
- ์ด ๋ณ๊ฒฝ์ฌํญ๋ค์ ์์ ํ์ผ๋ก ์ ์ฅ
- ๋ธ๋์น ๋ฆฌ์
- ํ์ฌ ๋ธ๋์น(experiment)๋ฅผ rebase ๋์ ๋ธ๋์น(main)์ ์ต์ ์ปค๋ฐ์ผ๋ก ๋ฆฌ์
- ๋ณ๊ฒฝ์ฌํญ ์ฌ์ ์ฉ
- ์์ ์ ์ฅํด๋ ๋ณ๊ฒฝ์ฌํญ๋ค์ ์์๋๋ก ์๋ก์ด ์ปค๋ฐ์ผ๋ก ๋ง๋ค์ด ์ ์ฉ
main ๋ธ๋์น ํฌ์ธํฐ์ ์ด๋์ ๋ณ๋๋ก ์ํํ์ง ์๊ธฐ ๋๋ฌธ์ main ๋ธ๋์น๋ก ๋์์ Fast-forwardํ์ฌ ๋ง๋ฌด๋ฆฌํ๋ค.
$ git checkout main
$ git merge experiment
์ด์ฒ๋ผ rebase๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ์ ๋ณ๋ ฌ๋ ์งํํ ์ํฉ์๋ rebase ํ์๋ ๋ชจ๋ ์์ ์ด ์ฐจ๋ก๋ก ์ํ๋ ๊ฒ์ฒ๋ผ ํ์คํ ๋ฆฌ๊ฐ ์ ํ์ด ๋๋ค.
Rebase ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
- ์ด๋ฏธ ๊ณต๊ฐ ์ ์ฅ์์ pushํ ์ปค๋ฐ์ rebaseํ์ง ๋ง๊ธฐ
๋ฐ์ ๊ฐ๋ฅํ ๋ฌธ์
- ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๊ธฐ์กด ์ปค๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์์ ํ์ ๊ฒฝ์ฐ
- ์ด๋ฏธ push๋ ์ปค๋ฐ์ rebaseํ๋ฉด ํ ๋๋ฃ๋ค์ ์์ ์ ํผ๋ ์ด๋
- ์ถฉ๋๊ณผ ์ค๋ณต๋ ์ปค๋ฐ ๋ฐ์ ๊ฐ๋ฅ
๋ฌธ์ ์์ธ : rebase๋ ๊ธฐ์กด์ ์ปค๋ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ๋ด์ฉ๋ง ๊ฐ์ ์๋ก์ด ์ปค๋ฐ์ ๋ง๋ค๊ธฐ ๋๋ฌธ
์ ์ ํ Rebase ์ฌ์ฉ ์ํฉ
- ๋ก์ปฌ์์๋ง ์์ ํ, ์์ง ๊ณต์ ๋์ง ์์ ๋ธ๋์น์์ ์ฌ์ฉ
- main ๋ธ๋์น์ ์ต์ ๋ณ๊ฒฝ์ฌํญ์ feature ๋ธ๋์น์ ์ ์ฉํ๋ ๊ฒฝ์ฐ
Merge vs Rebase ์ด๋ค ๊ฒ์ ์ฌ์ฉํด์ผ ๋ ๊น?
Merge๋ฅผ ์ ํธํ๋ ๊ด์
- ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ "์ค์ ๋ก ์ผ์ด๋ ์ผ์ ๊ธฐ๋ก"์ด๋ค.
- ํ์คํ ๋ฆฌ๋ ์ญ์ฌ์ ๋ฌธ์๋ก์ ๊ฐ์น๊ฐ ์๋ค.
- ํ์คํ ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ "๊ฑฐ์ง๋ง"ํ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
- ๋ณต์กํ merge ์ปค๋ฐ๋ค์ด ์๋๋ผ๋, ๊ทธ๊ฒ์ด ์ค์ ์์ ๊ณผ์ ์ด๋ฏ๋ก ๋ณด์กดํด์ผ ํ๋ค.
Rebase๋ฅผ ์ ํธํ๋ ๊ด์
- ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ "ํ๋ก์ ํธ๊ฐ ๋ง๋ค์ด์ง ๊ณผ์ ์ ์ด์ผ๊ธฐ"์ด๋ค
- ์ฑ ์ ์ด๊ณ ๋ฅผ ๊ณต๊ฐํ์ง ์๋ ๊ฒ์ฒ๋ผ, ์ง์ ๋ถํ ์์ ๊ณผ์ ์ ๋ณด์ฌ์ค ํ์๊ฐ ์๋ค.
- A์์ B๋ก ๊ฐ๋ ๊ณผ์ ์ ๋ ๋ช ํํ๊ณ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ผ ํ๋ค.
- ๋ฏธ๋์ ๋ ์๋ฅผ ์ํด ๋ ๋์ ๋ฐฉ์์ผ๋ก ์คํ ๋ฆฌ๋ฅผ ์ ๋ฌํ์.
์ ์ ํ ์ฌ์ฉ
- ๋ก์ปฌ ๋ณ๊ฒฝ์ฌํญ์ rebase๋ก ์ ๋ฆฌ
- ์ด๋ฏธ pushํ ๋ด์ฉ์ ์ ๋ rebaseํ์ง ์๊ธฐ
์ฐธ๊ณ ์๋ฃ :
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
Git - Rebasing
Ahh, but the bliss of rebasing isn’t without its drawbacks, which can be summed up in a single line: If you follow that guideline, you’ll be fine. If you don’t, people will hate you, and you’ll be scorned by friends and family. When you rebase stuf
git-scm.com
05-05 rebase
> *SimpleTest 2.1.0๋ฒ์ ๋ฐฐํฌ ํ์ ๋๊ฐ์ง ์ด์๊ฐ ๋ฐ์ํ์๋ค.* > > - *CalcDiv ํจ์ ๊ฒฐํจ : ๋ถ๋ชจ๋ฅผ 0์ผ๋ก ํ์ ๋ ์๋ฌ๋ฐ์, ๋๋์ ๊ฒฐ๊ณผ๊ฐ ์ …
wikidocs.net
'Git, GitHub' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
git fetch, git pull (0) | 2025.01.10 |
---|---|
git merge, merge ์ข ๋ฅ(Fast-forward Merge, 3-way Merge), merge conflict ๋ฐ์ ์ด์ ๋ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2025.01.10 |