본문 바로가기
Works/Git

[Git] SourceTree Rebase 사용하기

by Vader87 2019. 12. 19.
반응형

 작업용 Branche 에 master 의 내용을 반영해야 될 일이 있어 SourceTree 에서 Rebase 하는 방법을 따로 정리 합니다. Git 의 Rebase 와 Merge 에 관한 내용들은 구글링 해보면 쉽게 찾을 수 있기 때문에 생략합니다.

 간단한 예로 Work_A 까지 작업된 master 에서 Branche 를 생성해서 Work_AA 라는 작업까지 마쳤는데 master 에 Work_B 라는 내용이 추가가 되었고 Branche 에서 이 내용을 반영해서 작업을 이어 나가야 하는 경우를 해결하는 방법이라고 보면 됩니다.

 우선 작업중인 Branche 에서 History 를 All Branches 로 바꿔 master 에서 Work_B 라는 Commit 을 선택합니다. 선택 후 우클릭 메뉴에서 Rebase 를 선택하면 Branche 에 master 의 내용이 반영된 History 로 변경이 됩니다.

 여기까지는 로컬에 Rebase 가 된 것인데 Remote Branche 에는 반영이 되지 않아 Push 와 Pull 쪽에 반영이 필요한 작업목록이 있는걸로 뜨게 됩니다. 이 상태에서는 Push 도 Pull 도 되지 않는 상태가 되어 Remote Branche 에 작업 내용을 반영할 수 없습니다.

 이걸 해결하려면 Force Push 를 해야 하는데 SourceTree 기본 설정은 Disable 상태이므로 옵션에서 Enable 로 바꿔주는 작업을 먼저 해주어야 합니다.

Tools > Options

그 다음 Push 를 누르면 뜨는 창에서 하단에 Force Push 를 체크 해주고 Push 하면 Pull 내용을 무시하고 강제로 Push 합니다.

 혹시나 기존 작업 내용을 날리는 건지 불안했는데 다행히 기존 작업 내용이 살아 있는 상태에서 Rebase 된 형식으로 반영이 되었습니다.

 다행히 작업 내용에서 Branche 와 master 가 충돌이 나지 않아서 간단히 해결했는데, 충돌이 나는 경우는 차후에 발생하면 해결방법을 찾아 보고 추가 해보도록 하겠습니다.

반응형

댓글