DEV_Larva
Git Push 취소 본문
간혹 깃을 이용하다 보면 잘못된 파일을 추가한 상태로 푸시를 하거나 뺀 상태로 푸시를 하는 경우가 있다. 이유는 이밖에도 더 다양하게 있을 텐데.. 최근에 다양한 프로젝트를 다루다 보니 잘못된 파일을 정상적인 레포지토리가 아닌 잘못된 레포지토리에 푸시가 되거나, 커밋 내용을 잘못 작성한 경우도 생겨 당황스러웠던 적이 있었다. 그래서 이번 시간에는 제목 그대로 Push를 취소하는 방법에 대해서 알아보자.
1. Push 취소 방법
- reset: 자신이 되돌리고 싶은 시점의 커밋 이력으로 돌아가는 것을 말한다.
- revert: 현재까지 남긴 이력들은 유지한 상태로 되돌리고 싶은 커밋을 원상 복귀시키는 것
이 두 가지의 차이점은 revert의 경우 복구에 대한 커밋도 커밋 이력에 남는다는 것이다.
자세한 사항들은 깃 공식 문서에 한 번 더 학습해보는 것도 좋을 것 같다.
Git - Reset 명확히 알고 가기
지금까지 reset 명령을 실행하는 기본 형태와 사용 방법을 살펴봤다. reset 명령을 실행할 때 경로를 지정하면 1단계를 건너뛰고 정해진 경로의 파일에만 나머지 reset 단계를 적용한다. 이는 당연한
git-scm.com
나의 경우 혼자 하였던 프로젝트에서 일어났던 일이라 reset을 사용해보았다. 어떤 방식으로 했는지 더 자세하게 알아보자.
2. 자세한 과정
가장 먼저 해야 할 것은 당연하게도 깃 로그들을 확인해야 한다. 그래야 어느 지점으로 reset을 할지 확인할 수 있기 때문이다.
git log --oneline //커밋 사항이 많을때
git log // 커밋 사항이 적을때
나의 경우 한눈에 보기 편한 것이 git log --oneline을 이용하는 것이라서 이걸 주로 많이 사용한다. 여기서 중요하게 봐야 할 것들은 커밋 메시지가 아니라 커밋 메세지 앞에 있는 알파벳과 숫자가 섞여 있는 7자리를 기억해주면 된다. 그리고 git reset을 실행하게 될 때 선택해야 하는 것이 있다. 해당 이력 이후의 모든 내용을 지우겠다면 reset --hard를, 과거 이력만 지우고 이후 바로 커밋을 하고 싶다면 reset --soft를 사용하면 된다. 이게 뭔 소린가 나도 설명을 하면서 내 말을 이해하지 못했다. 다시 정리해보자면! 나의 경우 가장 최근껄로 예를 들어보자.
git reset <옵션> <돌아가고싶은 커밋id>
ex)
git reset --soft d67cc64
git reset --mixed d67cc64
git reset --hard abcd67cc64def
git reset HEAD~10 (현재부터 10개 이전으로 복구)
출처: https://gmlwjd9405.github.io/2018/05/25/git-add-cancel.html
- soft : index 보존(add 한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.
- mixed : index 취소(add 하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)
- hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소.
극단적으로 다 보존한 상태로 두고 돌아가고 싶다면 soft, 확 다 엎어 버리는 건 hard라고 할 수 있겠다. 그래서 hard를 사용하면 굉장히 깔끔해지지만 모두 사라지는 것이기 때문에 까딱 잘 못쓰다가는 내 프로젝트 전체가 깔끔해질 수 있다~~ 그러니깐 신중히 써야 하겠죠?
다 끝났다면 이제 다시 푸시를 해주자.
git push -f origin main(master)
git은 공부를 하면 할수록 계속 뭔가 새로운 것들이 나와서 참신한 느낌을 받는다. 언제 한번 또 날 잡아서 깃 공부는 따로 공부해야 할 필요성을 느낀다. 💪🤩💪
'잡동사니 > Git&Github' 카테고리의 다른 글
.DS_Store...? (0) | 2023.05.28 |
---|---|
Git GUI - GitKraken (0) | 2023.01.08 |
Github 공유 실습 (0) | 2022.09.22 |
Git 공유 (0) | 2022.09.19 |
Git 설치 (0) | 2022.09.18 |