참고)
Interactive rebase는 git rebase -i [commit hash], [HEAD] 와 같이 rebase 명령어에 -i(Interactive) 옵션을 붙여서 사용합니다.
commit의 hashcode나 HEAD 포인터를 이용해서 위치를 지정해주시면 됩니다. 이때 주의할 점은 수정할 커밋의 직전 커밋을 지정해주어야 합니다.
⇒ 바로 직전 커밋이라면?
git rebase -i HEAD^
Bash
복사
해당 커밋을 pick이 아니라 edit한다.
커밋을 분리하기 위해선 커밋에 있던 작업 파일들을 working directory로 가져온다.
git reset --mixed (reset은 커밋을 초기화하고 작업 파일들을 되돌려주는 명령어)
git reset --mixed HEAD~1 (--mixed가 default 옵션이기때문에 생략 가능함)
Bash
복사
reset 명령어 실행 후 status 명령어를 통해 작업 상태를 확인해보면 파일들이 working directory로 돌아왔다.
하나씩 staging area에 추가해서 커밋을 해준다.
git add 프로그래머스/모든문제/제로베이스
git commit -m '~~~'
Bash
복사
위와 같이 반복해서 커밋들을 분리해준다.
1개의 커밋을 3개의 커밋으로 분리했다.(DFS, BFS, Organize by folder)
커밋 수정 작업이 끝나면 rebase를 완료했다는 명령을 줘야 한다.
git rebase --continue // rebase 작업 완료
Bash
복사