이미 커밋을 했는데, 너무 빨리 커밋했거나 잘못된 커밋을 해서 커밋을 취소하고 있은 경우가 있을 것이다.
그럴때 참고하기 위해 간단하게 정리해보려고 한다.
push하지 않고 commit만 했다면?
git reset "HEAD^" # 가장 최신 커밋 1개 취소
git reset "HEAD~3" # 최신 커밋 3개 취소
이렇게 커밋을 취소해주면 해당 커밋의 변경 파일은 다시 untrackted 상태로 돌아간다.
그 다음 다시 파일을 정리해 완성된 커밋을 진행해주면 된다!
commit하고 push까지 했다면?
이미 커밋을 github에 push까지 한 상태에서 보내버린 커밋을 수정해서 다시보내고 싶은 경우가 있을 것이다.
나 또한 이런경우가 많았는데 커밋을 다시 만들어 보내자니 불필요한 히스토리가 생기는 것이 싫었다..!
이럴때는 커밋을 취소하고 강제로 push를 진행하면 커밋도 수정하고 히스토리도 깔끔하게 관리할 수 있다.
하지만 이 방법은 협업을 하는 프로젝트에서는 사용을 신중히 해야한다.
말그대로 작업 내용을 github에 강제로 덮어쓰게 하므로 다른사람의 커밋내용까지 지워버릴수가 있기 때문에..
협업 시에는 지양해야 한다! (혼자 쓰는 개인 프로젝트에만 사용하자)
git reset "HEAD" # 가장 최신 커밋 1개 취소
git push origin main -f # main 브랜치에 강제로 push 진행
이때 -f 대신 브랜치 이름 앞에 + 기호를 붙여 다른 브랜치로 push 할 수도 있다.
'🕹️ Programming > Git & Github' 카테고리의 다른 글
[Git] 명령어 취소하기 : git reflog & reset (0) | 2023.07.14 |
---|---|
[Github] PR, ISSUE 템플릿 사용하기 (0) | 2023.06.16 |
[Git] 커밋 이력 변경하기 (0) | 2022.12.07 |
[Git] 커밋 메세지 컨벤션 (0) | 2022.10.30 |
[Git] Github에 이미 올려버린 파일을 .gitignore로 없애기 (0) | 2022.08.07 |
[Git] 브랜치(branch) 사용하기 (0) | 2022.06.28 |
[Git] 깃 설치하기 (0) | 2022.06.28 |