작업용 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 로 바꿔주는 작업을 먼저 해주어야 합니다.
그 다음 Push 를 누르면 뜨는 창에서 하단에 Force Push 를 체크 해주고 Push 하면 Pull 내용을 무시하고 강제로 Push 합니다.
혹시나 기존 작업 내용을 날리는 건지 불안했는데 다행히 기존 작업 내용이 살아 있는 상태에서 Rebase 된 형식으로 반영이 되었습니다.
다행히 작업 내용에서 Branche 와 master 가 충돌이 나지 않아서 간단히 해결했는데, 충돌이 나는 경우는 차후에 발생하면 해결방법을 찾아 보고 추가 해보도록 하겠습니다.
'Works > Git' 카테고리의 다른 글
[Git] Sourcetree - Git 저장소 암호가 바뀌 었을때 Access denied 해결 방법 (0) | 2021.08.03 |
---|---|
Github 로 개인 Web Page 만들기 (1) | 2021.05.14 |
[Git] SourceTree SHA-1 Hash 값을 통한 Commit 검색 (0) | 2020.02.21 |
[Git] SourceTree Commit Author 수정 (0) | 2020.02.18 |
[Git] typechange (0) | 2020.02.07 |
댓글