git Rebase with sourcetree

0d260f9eb424562a3185c0261781c856

배경

유림님 바꾼 코드 원형 완전 구식이네요.
리베이스 하세요 ㅎㅎ
네(?!)

현재상황

브랜치를 따서 열심히 코딩하고 있었는데
시간이 흘러 기존 코드가 많이 바뀌었다.
머지하기에 앞서 이 묵은 커밋들을 최신코드에 적용시키고 싶은데
그럼 어떻게 해야할까?

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. 현재 브랜치 상황

1

 

6. branch2로 체크아웃하고, 베이스로 삼기 원하는 브랜치(master)에서 우측클릭->Rebase->OK 클릭

2

 

7. 그러면 Merge Conflicts가 난다.

3

 

8. Uncommitted changes에서 conflict를 확인한다.

4

 

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로 옮겨준다(체크)

5

 

12. Menu> Actions> Continue rebase를 눌러 다음 커밋(branch add2)으로 넘어간다.

6

 

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)가 위에 가서 붙는다.

7

 

15. Push한다. 그러면 최신코드에 반영이 되어 merge된다.

8

 

16. 브랜치 상황을 더욱 잘 보기 위해 masterbranch2에 각각 커밋 하나씩을 해보았다.

first commit에서 빠져나온 branch2third commit(당시최신)에서 빠져나온 branch2와 머지되었다.
9

끝~~ ^.^

 

 

아기_토끼

안녕하세요, 수련중인 개발자입니다.
피드백이나 오류 정정을 해주시면 감사히 받겠습니다!

Published by

Yurim Jin

아름다운 웹과 디자인, 장고와 리액트, 그리고 음악과 맥주를 사랑하는 망고장스터

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s