rebase

๋‚ด๊ฐ€ ์ž‘์—…์ค‘์ธ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์–ด์„œ PR์„ ๋‚ ๋ฆฐ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ PR ์˜ฌ๋ฆฌ๊ธฐ ์ „ rebase๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ธŒ๋žœ์น˜ : ํ˜„์žฌ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ๋ธŒ๋žœ์น˜

ํ˜„์žฌ ๋ธŒ๋žœ์น˜ ์˜ˆ์‹œ: feat/1-setting

## ๋ฐฉ๋ฒ• 1

$ git checkout develop
$ git pull origin develop
$ git checkout feat/1-setting
$ git pull origin develop # ์›๊ฒฉ ์ €์žฅ์†Œ origin develop์— ์ž‘์—…๋˜์–ด์žˆ๋Š” ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ด.
$ git rebase develop # ๊ฐ€์ ธ์˜จ develop์˜ ๊ฐ€์žฅ ์ตœ์‹  ์ปค๋ฐ‹์œผ๋กœ HEAD ์ด๋™

## ๋ฐฉ๋ฒ• 2

$ git checkout feat/1-setting # ํ˜„์žฌ ๋ธŒ๋žœ์น˜๊ฐ€ feat/1-setting์ด๋ผ๋ฉด ํŒจ์Šค
$ git pull --rebase origin develop

๊ฒฐ๋ก ์ ์œผ๋กœ, ๋‚ด๊ฐ€ ์ค‘๊ฐ„์— ์ž‘์—…์ด ์™„๋ฃŒ๋œ ๋‹ค๋ฅธ ํฌ๋ฃจ์˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ๋˜๊ฑฐ๋‚˜ PR์„ ์˜ฌ๋ฆฌ๊ธฐ ์ „ rebase๋ฅผ ํ•˜๋ฉด ๋œ๋‹ค.

Q. update rebase๋ฅผ ๋ˆ„๋ฅธ ๋’ค์— push ํ•  ์ผ์ด ์ƒ๊ธฐ๋ฉด ์•„๋ž˜ ์ž‘์—…์„ ํ•˜๋ฉด ๋ผ์š”

## ๋งŒ์•ฝ ์›น ์ƒ์—์„œ update rebase๋ฅผ ๋ˆ„๋ฅธ ๋’ค, ์ถ”๊ฐ€ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ƒ๊ฒจ์„œ ๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•ด์•ผ ํ•  ๋•Œ
$ git pull --rebase origin feat/1-setting

Untitled

๋จธ์ง€ ํ•˜๊ธฐ ์ „, update rebase๋ฅผ ํ•ด์•ผ ํ•จ

์•„๋ž˜๋Š” ์–ธ์ œ ์“ฐ๋‚˜์š” ๐Ÿ˜ญ

## ๋งŒ์•ฝ remote์˜ ํ•ด์‹œ์™€ ๋กœ์ปฌ์˜ ํ•ด์‹œ๊ฐ€ ๋‹ฌ๋ผ์„œ ๊ฐ•์ œ push๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
## --force-with-lease: ๊ฐ•์ œ ํ‘ธ์‰ฌ๊ฐ€ ์•ˆ์ „ํ•  ๊ฒฝ์šฐ์—๋งŒ ๊ฐ•์ œ push๋ฅผ ํ•œ๋‹ค.

$ git push --force-with-lease origin feat/1-setting

merge

pull = fetch + merge

๊ทธ๋Ÿผ merge๋Š” ์–ธ์ œํ•ด์š”?