반응형
작업을 하다보면 push한 commit을 되돌려야하는 상황이 온다.
그럴때마다 매번 어떻게 했는지 기억이 안나서 빡쳐서 메모해두기로..
Reset 사용하여 깃 커밋 되돌리기!!!
1. commit 리스트 확인
우선 commit 리스트 확인은
git log
2. commit 취소하기
가장 최근 커밋(commit)한것을 취소하고 싶을땐
git reset HEAD^
여러개의 커밋을 취소하고 싶을땐?
git reset HEAD~n
* n에는 개수만큼 입력하면 된다.
2개 = git reset HEAD~2
3개 = git reset HEAD~3
reset 옵션
명령 | 설명 |
--soft HEAD^ | - 커밋취소 - 커밋 취소된 파일 스테이징에 복구 - 파일 수정사항 유지 |
--mixed HEAD^ | (기본옵션) 최근 커밋 & 스테이징을 하기 전 상태로 되돌리기 - 커밋취소 - 커밋 취소된 파일은 스테이징 취소 - 파일 수정사항 유지 |
--hard HEAD^ | 최근 커밋과 스테이징, 파일 수정 전 상태로 작업 되돌리기 - 커밋취소 - 커밋 취소된 파일은 스테이징 취소 - 파일 수정사항 삭제 이 옵션의 주의사항!! 파일을 되돌릴 수 없다는 점이다. 따라서 신중하게 사용하거나 복구할 수 있는 저장소가 있는 경우에만 사용. |
3. git reset 사용
'git reset'은 원하고자 하는 커밋으로 현재 브랜치를 되돌리는 기능이다.
이 방법은 히스토리를 변경하기 때문에, 이미 공유된 리포지토리의 경우 주의하여 사용해야 한다.
- hard reset : 변경 사항을 모두 삭제 후, 특정 커밋 브랜치로 되돌린다.
git reset --hard <커밋 해시>
- soft reset : 변경 사항을 유지하면서 특정 커밋으로 브랜치 되돌린다.
git reset --soft <커밋 해시>
4. git reflog
'git reflog'는 브랜치의 히스토리를 확인 후, 잘못된 푸시 이전 상태로 돌아가는데 유용하다.
3. 깃허브 서버에 강제 push!
그리고 커밋 commit한것을 깃허브(GitHub)에 알려주기위해 강제로 푸시!
git push -f origin "브랜치명"
* master에 푸시한 commit 삭제하려면
git push -f origin master
이제 두려울 것이 없다!!!!!!!!
그래도 늘 조심하자...ㅎ
반응형
'작업 피드백 > 개발' 카테고리의 다른 글
[리팩토링] 아카이빙 페이지 유지보수 중 데이터 DRY 이슈 정리 (0) | 2024.04.09 |
---|---|
체크박스 unchecked 일때, 체크하라는 alert창 띄우기 :: checkbox, javascript study (0) | 2022.05.31 |
순수 Javascript 이용해서 그래프 만들기 (0) | 2022.02.22 |
제이쿼리&CSS 말줄임 스크립트로 처리하는 방법 / Ellipsis Using Css & J-query (0) | 2021.05.18 |
CSS사용해서 HTML 툴팁(tooltip) 구현하기 (0) | 2021.05.13 |