728x90
팀 프로젝트 진행중에 팀원들이 협업과 깃에 익숙하지 않아서 문제가 발생했다.
이미 메인 브랜치에 각자 작업내용들을 모두 합치기도 했고 원격 깃허브에도 모두 올라간 상황인데 한 팀원의 브랜치에서 깃허브에 올라가면 안되는 파일이 꽤 예전 커밋에서 부터 포함되어 올라와있었다.
gitignore에도 등록해둔 파일인데 어쩌다 올라갔는지는 모르겠지만 아무튼 과거의 커밋을 수정해서 해당 파일을 제외해야했다.
git rebase -i [커밋해시]
과거의 커밋을 수정할때는 rebase -i 를 이용한다. 수정하고자 하는 커밋보다 이전 커밋의 해쉬번호를 선택하여 입력하면 아래와 같은 화면이 나온다.

각각 커밋들이
[커맨드] [해시번호] [커밋메시지]
형태로 나열되어있고 친절하게 커맨드에 대한 설명도 적혀있다.
기본적으로 해당 커밋을 그대로 사용한다는 뜻의 pick으로 되어있으며 수정하길 원하는 커밋 앞에 커맨드를 수정하면 된다.
빠져야하는 내용이 독립된 커밋으로 올라와있었다면 단순하게 해당커밋앞에 d 또는 drop 을 적으면 커밋이 삭제되겠지만 내 상황에서는 수정이 필요하니 수정을 뜻하는 e을 적는다. :wq 를 입력해서 빠져나오면 해당 커밋 시점으로 이동된다.
이동되는 시점은 수정하려는 커밋이 이미 추가되어있는 상태이기때문에
git reset HEAD~
명령어를 입력하여 스테이징 되기 이전으로 이동한 뒤, 문제가 되는 파일을 제외한 나머지만 add하고 커밋하면 된다.
수정이 끝나면
git rebase --continue
명령어로 진행하면되고
혹시 작업중 충돌이 많이 생겨서 일단 취소하고 미뤄두겠다면
git rebase --abort
명령어를 입력하면 작업을 취소한다.
728x90
반응형
'기타 개발' 카테고리의 다른 글
[메시지 브로커] rabbitMQ vs activeMQ vs kafka (0) | 2023.07.25 |
---|---|
AWS ec2 우분투에 rabbitmq 설치하기 (0) | 2023.07.21 |
MongoDB 간단하게 알아보기 (0) | 2023.07.21 |
파이썬 코딩테스트 준비하기 - 라이브러리, 알아두면 좋은 것 (0) | 2023.07.20 |