배경
유림님 바꾼 코드 원형 완전 구식이네요.
리베이스 하세요 ㅎㅎ
네(?!)
현재상황
브랜치를 따서 열심히 코딩하고 있었는데
시간이 흘러 기존 코드가 많이 바뀌었다.
머지하기에 앞서 이 묵은 커밋들을 최신코드에 적용시키고 싶은데
그럼 어떻게 해야할까?
Tutorial
1. master
브랜치에서 원본코드 코딩 후 commit한다.
//rebase_test1.html <ul class="master"> <li>m1</li> <li>m2</li> <li>m3</li> </ul>
//rebase_test2.html <ul class="trgood"> <li>m1</li> <li>m2</li> <li>m3</li> </ul>
2. branch2
를 만들고 rebase_test1
코드를 수정 후 commit한다.(branch add1)
<ul class="master branch2"> <li>m1</li> <li>m2</li> <li>m3</li> <li>m4</li> </ul>
3. rebase_test2
코드를 마음껏 수정 후 commit한다.(branch add2)
<ul class="trgood excellent"> <li>b1</li> <li>m2</li> <li>m3</li> <li>b4</li> </ul> <b>oh my god</b>
4. master
브랜치로 checkout한 후 원본코드를 신나게 수정하고 커밋한다.
//rebase_test1.html <ul class="master original"> <li>m1</li> <li>m2</li> <li>m3</li> <li>m4</li> <li>m5</li> </ul>
//rebase_test2.html <ul class="trgood"> <li>m1</li> <li>m2</li> <li>m3</li> <li>m4</li> <li>m5</li> <li>m6</li> </ul> <b>haha good</b> <b>haha excellent</b>
5. 현재 브랜치 상황
6. branch2
로 체크아웃하고, 베이스로 삼기 원하는 브랜치(master)에서 우측클릭->Rebase
->OK 클릭
7. 그러면 Merge Conflicts
가 난다.
8. Uncommitted changes
에서 conflict
를 확인한다.
9. rebase_test1.html
을 확인한다. 이건 branch2
를 만들고 처음 한 branch add 1
커밋을 최신 master코드에 적용시켰을때 나오는 충돌이다!
<<<<<<< HEAD <ul class="master original"> ======= <ul class="master branch2"> >>>>>>> branch add 1 <li>m1</li> <li>m2</li> <li>m3</li> <li>m4</li> <<<<<<< HEAD <li>m5</li> ======= >>>>>>> branch add 1 </ul>
10. 원하는 방향으로 conflict를 해결해준다.
<ul class="master branch2"> <li>m1</li> <li>m2</li> <li>m3</li> <li>m4</li> <li>m5</li> </ul>
11. 그 파일의 충돌해결이 끝나면 staged files
로 옮겨준다(체크)
12. Menu
> Actions
> Continue rebase
를 눌러 다음 커밋(branch add2
)으로 넘어간다.
13. 이번엔 rebase_test2.html
에서 conflict가 난다. 해결해준다.
<<<<<<< HEAD <ul class="trgood"> <li>m1</li> <li>m2</li> <li>m3</li> <li>m4</li> <li>m5</li> <li>m6</li> </ul> ======= <ul class="trgood excellent"> <li>b1</li> <li>m2</li> <li>m3</li> <li>b4</li> </ul> <b>oh my god</b> >>>>>>> branch add2
14. 그럼 커밋 2개(branch add1
, branch add2
)가 위에 가서 붙는다.
15. Push한다. 그러면 최신코드에 반영이 되어 merge된다.
16. 브랜치 상황을 더욱 잘 보기 위해 master
와 branch2
에 각각 커밋 하나씩을 해보았다.
first commit
에서 빠져나온 branch2
가 third commit
(당시최신)에서 빠져나온 branch2
와 머지되었다.
끝~~ ^.^
안녕하세요, 수련중인 개발자입니다.
피드백이나 오류 정정을 해주시면 감사히 받겠습니다!