>> 재배치 (rebase)를 통한 그래프 관리

-       현재 master, origin/master, upstream/master 모두 같은 위치에 있음

-       모든 저장소는 동일한 상태

 

-       개인 Fork 에서 master로 작업 내용 커밋 (푸시 안함)

n  수정 내용 1

n  수정 내용 2

n  수정 내용 3 (현재 master 위치)

 

-       Fork 저장소인 Origin/master 에 커밋 내용 push

n  수정 내용 3 (현재 master, origin/master 위치)

 

-       개인 Fork 저장소에서 MergeRequest 생성

n  GosMobile/klp (fork 저장소) -> gosmobileplatform/klp (원본 저장소)

n  Fork 저장소에 반영한 수정 내용 1, 2, 3 MergeRequest 생성

 

-       Assignee 담당자가 코드 리뷰 후 upstream/master MergeRequest 내용을 merge

-       MergeRequest 보낸 이후 master에서 다시 수정 작업 진행

n  또 수정 1

n  또 수정 2

n  또 수정 3

n  또 수정 4

-       수정 작업 중 upstream/master 내용을 본인의 master에 가져오고 싶음

n  Upstream/master 오른쪽 클릭 후 가져오기 (fetch) : 병합 안함

n  가져오기만 했을 경우 git 트리 그래프 상태

 

n  이 상태에서 병합을 하게되면 병합 로그가 다시 남기 때문에 그래프를 정리하기 위해서 rebase 처리 (커밋 내용이 origin/master로 푸시되지 않은 상태여야 함)

n  가져와 병합하기 할 경우 master 에 커밋된 내용과 upstream/master 내용이 병합되어 새로운 커밋이 생성 됨 (merge 커밋이 빈번하게 쌓이기 때문에 merge대신 재배치로 처리)

 

n  master 위치에서 그래프 상 upstream/master 오른쪽 클릭 후 재배치 (rebase)

 

n  Rebase 를 하면 그래프가 예쁘게 정리 됨 (그래프가 내 master 기준으로 깔끔하게 다듬어 진 상태)

n  병합 (merge) 하기와 재배치 (rebase) 그래프 차이

 

-       이 상태로 origin/masterpush를 하고 추가 수정된 또 수정 1, 2, 3MergeRequest하면 upstream/master에서 만 MergeRequest 내용 Merge 로그가 남게됨

 

>> 재배치를 이용한 개인 Fork master 커밋 로그 합치기

-       이성민 Fork 저장소의 master에서 커밋 1, 커밋 2, 커밋 3을 했는데 origin/master, upstream/master에는 커밋 내용을 합쳐서 깔끔하게 올리고 싶음

-       커밋 1, 2, 3의 뿌리가 되는 커밋 항목에서 오른쪽 클릭


-       맨 위 커밋 선택 후 이전 커밋과 합치기 클릭

-       합칠 커밋 계속해서 반복 작업 진행

 

-       커밋 내용 모두 합친 이후 메시지 편집 클릭하여 메시지 재 작성

 

-       커밋 1, 2, 3 내용이 커밋 한 개로 합쳐진 상태 (커밋 히스토리를 깔끔하게 정리 : 예를들어 욕 써놓은 커밋이라던지, 실수로 커밋한 내용이라던지등등등)

-       합쳐진 커밋을 MergeRequest 생성 해서 리뷰 요청

'Development > GIT' 카테고리의 다른 글

SourceGear DiffMerge git Client 설정  (0) 2021.05.17
git push 되돌리기  (0) 2016.08.24
안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,