[Git] rebase 활용하여 커밋에서 원하지 않는 파일 빼기공부/Git2022. 5. 26. 13:47
Table of Contents
반응형
PR 요청하기전 commit 이력 정리하고 있는데, 하나의 commit에 원치 않는 파일이 포함되어 있다는 것을 깨닫게 되었다.
로컬 작업 중이고, commit 을 remote에 반영하지 않은 경우에만 수행하시길 바랍니다
commit 이력이 remote에 반영된 경우 내려받은 다른 사람들과 conflict(충돌)이 발생하여 문제 야기할 수 있기 때문입니다
해결 방법
① 작업이력 임시 저장 :: stash
$ git stash list // 확인
$ git stash push -um "임시저장(메시지작성알아서)" // -u : untracked file 까지 , -m : 메시지 작성
$ git stash list // 재확인
stash 는 스택 자료구조와 닮아 있고, LIFO로 최근 데이터의 경우 stash@{0}에 저장된다
② rebase 시작
$ git reabase -i 커밋ID // 이때 target commit id 의 전 단계 commit id를 지정해야함
//(중요) 대상 commit 옵션을 pick에서 e로 변경
실제 target commit id : 64967f9 일 경우 target commit 의 앞 단계 commit id : 49a5ba3 를 선택
③ 대상 commit reset
$ git reset --mixed HEAD~1 // reset의 기본 옵션이 --mixed이기 때문에 생략 가능
④ 원하는 파일 제외하고 다시 commit
$ git status // 파일 상태 확인
// staging 이력정리 (생략)
$ git commit -m "똑같은 커밋 메시지"
⑤ rebase 종료, 파일 확인
$ git rebase --continue
$ git status
On branch feature-블라블라
Untracked files:
(use "git add <file>..." to include in what will be committed)
블라블라/dao/impl/RiskAnalysisLogDaoImpl.java
⑥ stash 복원 후 작업 진행
$ git stash pop stash@{0} // pop : 반영 및 stash 목록에서 삭제, apply : 반영, stash 목록 유지
$ git status
반응형
'공부 > Git' 카테고리의 다른 글
[Git] stash (0) | 2022.05.09 |
---|---|
[Git] tag (0) | 2022.03.22 |
[Git] 개인 Git Hub repository(저장소) 와 local repository 연결하기 (0) | 2021.08.05 |
@leejinwoo1126 :: 천천히 하나씩
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!