목표 newImage와 caption 브랜치에 각각의 변경내역이 있고 서로 약간 관련이 있어서, 저장소에 차례로 쌓여있는 상황이다. 우리의 작업이력(history)에서 한참 전에 작업한 커밋에 있는 내용 중 newImage의 크기를 살짝 바꿔달라는 요청이 들어왔다. 아래와 같이 풀어보자 git rebase -i 명령으로 우리가 바꿀 커밋을 가장 최근 순서로 바꾸어 놓는다 git commit --amend 명령으로 커밋 내용을 정정한다 다시 git rebase -i 명령으로 이 전의 커밋 순서대로 되돌려 놓는다 마지막으로, main을 지금 트리가 변경된 부분으로 이동한다. (체리픽은 나중에 사용해 보자) $git rebase -i HEAD~2 # 커밋 내용을 변경해야하기 때문에 변경할 커밋을 가장 마지막으..

인터랙티브 리베이스 reabse를 할 때 대화형(-i 옵션)으로 실행하는 것을 말한다 rebase를 진행할 때 다양한 추가 기능을 제공한다 인터랙티브 리베이스로 실행하면 vim 같은 텍스트 편집기 파일이 열리는데 그곳에서 다양한 기능을 적용할 수 있다 이 글에서는 3가지 기능에 대해서만 알아보겠다 적용할 커밋들의 순서를 변경할 수 있다 원하지 않는 커밋은 제외시킬 수 있다 커밋을 스쿼시(squash)할 수 있다 0. 현재 브랜치 상태 현재 상태에서 공통적으로 아래와 같은 명령어를 사용해 본 후 각 기능에 대해서 알아보자 $git rebase -i HEAD~3 1. 적용할 커밋들의 순서를 변경할 수 있다 위와 같은 텍스트 편집기가 열리는데 여기에서 커밋들의 순서를 변경한 후 :wq로 편집기를 종료하면 정한..

Rebase 두 브랜치를 합치는 또 다른 방법 기본적으로 커밋들을 모아서 복사한 뒤, 다른 곳에 떨궈 놓는 것이다 리베이스를 하면 커밋들의 흐름을 보기 좋게 한 줄로 만들 수 있어서 저장소의 커밋 로그와 이력이 한결 깨끗해진다. git reabase 현재 위치한 브랜치의 작업내역을 branch-name으로 복사한다 현재 bugFix와 main 브랜치가 있고 bugFix위에 위치해 있다. 이제 rebase를 이용해서 두 브랜치를 합치면 실제로는 두 기능을 따로따로 개발했지만, 마치 순서대로 개발한 것처럼 보인다 $git rebase main bugFix의 작업 내역(c3)이 복사되어(c3') main의 바로 위에 떨궈졌다. 이 상태에서 다시 main으로 이동 후 bugFix를 이동하면 이 전 merge에서..
- Total
- Today
- Yesterday