>> 재배치 (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/master로 push를 하고 추가 수정된 또 수정 1, 2, 3을 MergeRequest하면 upstream/master에서 만 MergeRequest 내용 Merge 로그가 남게됨
>> 재배치를 이용한 개인 Fork master 커밋 로그 합치기
-
이성민 Fork 저장소의 master에서 커밋 1, 커밋 2,
커밋 3을 했는데 origin/master,
upstream/master에는 커밋 내용을 합쳐서 깔끔하게 올리고 싶음

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

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

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

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


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