rebase๋ฅผ ์ฌ์ฉํด์ 11๊ฐ์ ์ปค๋ฐ์ ํฉ์ณ๋ด ์๋น.
[๋ก์ปฌ ์ ์ฅ์์ Commit ํ๊ฑฐ ํฉ์น๊ธฐ]
1. ํฐ๋ฏธ๋์ ์ด์ด์ ์๋ ๊ตฌ๋ฌธ ์ ๋ ฅ
git rebase -i HEAD~3
2. ํฉ์น commit ์ ํํด์ ํค์๋๋ฅผ s ๋ก ๋ฐ๊ฟ์ค๋๋ค.
: ๋งจ ์ commit ๋ฉ์ธ์ง(๋งจ ๋ง์ง๋ง ์ปค๋ฐ)๋ pick์ผ๋ก ๋ ๋๊ณ ํฉ์น commit ๋ฉ์ธ์ง๋ค(๋๋จธ์ง)๋ s๋ก ๋ฐ๊พผ๋ค.
: vi ํธ์งํ ๋ esc ํค ๋๋ฅด๊ณ i ๋ฅผ ์ ๋ ฅํ๋ฉด ๋๊ณ , :wq ๋ฅผ ์ ๋ ฅํด์ ์ ์ฅํ ์ข ๋ฃํด์ค๋ค.
3. ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์์ ํฉ๋๋ค.
: ์ปค๋ฐ์ ํฉ์ณค์ ๋ commit ๋ฉ์ธ์ง๋ฅผ ์์ ํ ์ ์๋ค. ์ด๋๋ก ์ ์ฅ์ข ๋ฃํ๋ฉด ๋ชจ๋ ์ปค๋ฐ ๋ฉ์ธ์ง๊ฐ ์น ๋์จ๋ค. ํ์์๋ ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์ง์์ฃผ๊ณ ํ์ค๋ก ์ ๋ฆฌํด์ฃผ์.
4. ์ ์ฅํ ์๋ฃํด์ ๊ฒฐ๊ณผ ํ์ธํ๊ณ push ํ๊ธฐ !
: 11๊ฐ -> 1๊ฐ๋ก ๋ฐ๋ ๋ชจ์ต.
[์๊ฒฉ ์ ์ฅ์์ Push ํ Commit ํ๋๋ก ํฉ์น๊ธฐ]
1. ๋ก์ปฌ์์ ์ปค๋ฐ ํฉ์น๊ธฐ
git rebase -i HEAD~2 // HEAD๋ก ๋ถํฐ 2๊ฐ์ commit
2. ํฉ์ณ์ง๋ ์ปค๋ฐ pick -> squash๋ก ๋ณ๊ฒฝํ๊ณ :x (vi์์ ์ ์ฅํ๊ณ ๋๊ฐ๊ธฐ)
3. ํฉ์น ์ปค๋ฐ์ ์ ์ปค๋ฐ ๋ฉ์ธ์ง ์์ฑ
4. ๊ฐ์ ํธ์ (๋๋๋ก์ด๋ฉด ํผ์ ์์ ํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์์๋ง)
git push origin <branch-name> --force
p.s) git commit message ์์ (push ์ ์ด์ด์ผ ํจ. push ํ๋ ์ด๋ค ๋ณ๊ฒฝ๋ ํ์ง ์๋๊ฑธ ์ถ์ฒ.)
1. ๊ฐ์ฅ ์ต๊ทผ commit ๋ฉ์ธ์ง ์์
git commit --amend
: vi ์์ esc -> i ํค ๋๋ฌ์ ์์ ํ, esc -> :wq ๋๋ฌ์ ์ ์ฅํ ๋์ค๋ฉด ๋จ~!
2. ์ค๋๋(์์ง push ์ํ) commit ๋ฉ์ธ์ง ์์
1) ์์์ ๋ช ๋ฒ์งธ commit์ ์์ ํ ๊ป์ง ํ์ธ ํ, ์๋์ฒ๋ผ ๊ฐ์ ์ ๋ ฅ.
git rebase -i HEAD~3
: ์์์ 3๊ฐ์งธ์ ์๋ commit์ ์์ ํ๊ณ ์ถ์ ๋.
2) ๋ณ๊ฒฝํ๊ณ ์ถ์ commit ๋ฉ์ธ์ง์ ํค์๋๋ฅผ pick -> reward ์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค.
3) ๋ณ๊ฒฝํ ์ ์๋ vi ์ฐฝ์ด ๋์์ง๋ฉด ๋ณ๊ฒฝํ๋ฉด ๋จ!
: esc -> i ํค ๋๋ฌ์ ์์ ํ, esc -> :wq ๋๋ฌ์ ์ ์ฅํ ์ข ๋ฃ ! ๋.
'๐ Computer Science > Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git] ์๊ฒฉ์ ์ฅ์์ Push ํ Commit ์ญ์ ํ๊ธฐ (0) | 2024.02.15 |
---|---|
[GitHub Packages] GitHub Packages (0) | 2023.10.18 |
[Git] git commit ๋ฉ์ธ์ง ์์ ๋ฐฉ๋ฒ (0) | 2022.04.03 |
[Git Error] fatal: Cannot setup tracking information; starting point 'branch' is not a branch. (0) | 2022.03.21 |
[Git Clone Errror & Solution] curl 18 transfer closed with outstanding read data remaining (0) | 2022.02.25 |