티스토리 뷰

브랜치를 새로 생성하지 않고 master 브랜치에서 계속 커밋했다.

master를 원래대로 돌리고 새 브랜치에 커밋을 옮기기 위해서 cherrypick 명령어를 사용해봤다.

일단 커밋을 옮길 브랜치(calculator) 생성하고 체크아웃 한다

git checkout -m calculator

옮겨올 커밋의 id값을 열거한다

커밋id^..커밋id를 통해 해당 범위 내 커밋이 모두 복사할 수 있다

git cherry-pick Acommit Bcommit //열거한 커밋 A,B만 복사
git cherry-pick Acommit^..Ncommit //A~N 까지 범위로 복사

다시 mater로 돌아와서 잘못 올린 커밋들을 하드 리셋시킨다.

reset에는 세 종류가 있다. 여기서 수정사항까지 다 날릴 것이기 때문에 hard를 선택한다.

soft: 커밋 취소O, 스테이징O, 수정사항 보존O

mix(기본옵션): 커밋 취소O, 스테이징X, 수정사항 보존O

hard: 커밋 취소O,  스테이징X, 수정사항 보존X

 

HEAD^ : 최신커밋 삭제

HEAD^~N : 최신커밋 N개 삭제

git checkout master
git reset --hard HEAD^
git reset --hard HEAD~3 //최신 커밋 3개 취소

첫 커밋부터 잘못 올라갔는데 이부분은 다르게 처리한다

git update -ref -d HEAD //HEAD가 가리키는 해시값 업데이트(초기화)
git rm --cached -r .
git push -f origin master //강제 원격 저장소 push

 

'잡다구리' 카테고리의 다른 글

Xcode 단축키  (0) 2024.03.20
최근에 올라온 글
Total
Today
Yesterday