git add . 이나 git commit -a 를 자주 쓰다보면 자칫 실수로 원하지 않는 파일이 커밋에 포함되어 버리는 경우가 있습니다.
상황
원래는 26d0ab1에 포함되어야 할 파일이 96a41e9 커밋에 포함되어 버림.
(그냥 가도 되긴 하지만 게으르면서도 집착증세가 있는 나란 동물...)
되돌리기 작업 시작!
rebase 옵션으로 한 단계 뒤로 돌아가서 시작. 원하는 commit을 pick 한다.
지금 같은 경우엔 26d0ab1 와 96a41e9 를 선택한다.
git rebase -i 96a41e9ef2d9747e7b34ae424b0c845ab7092ee4^
불필요한 파일을 staged에서만 지움
git rm --cached project/Build.scala
재 커밋 후 rebase 계속
git commit --amend
git rebase --continue
특정 commit에 파일을 추가하고 수정커밋
git add project/Build.scala
git commit --amend
rebase 계속
git rebase --continue
유의점
이미 최신 코드들을 중앙저장소로 넣은 상태라면
git push --force 명령어로 넣어야 하는데, 이런경우 수 많은 사람들에게 불편을 끼칠 수 있습니다.
(모든 사람에게 I'm so sorry but I'm allergy! 라고 말을 해야 하는 상황)
견뎌낼 수 있는 수준인지 확인할 필요가 있다. 안되면 아쉽지만 포기!
'[뭘, 이런걸 다?]' 카테고리의 다른 글
[뭘, 이런걸 다~] 어떤 개발자의 맥 환경 (3) | 2013.04.17 |
---|---|
[뭘, 이런걸 다?] 주기적으로 git 저장소에서 코드 가져오는 쉘 (0) | 2013.03.12 |
[뭘, 이런걸 다?] 크롬 브라우저 콘솔 폰트 크기 바꾸기 (0) | 2012.02.10 |
[뭘, 이런걸 다?] USB 메모리를 우분투 Live CD로 만들기 (초간단!) (0) | 2011.10.02 |
[뭘, 이런걸 다?] localhost의 특정 포트를 named host처럼 접근하기 (1) | 2011.08.23 |