local에만 commit을 쌓아두다가 한꺼번에 remote로 push를 하려고 하니, 이전 commit에서 큰 파일 때문에 모두 push가 되지 않는 초유의 사태가 발생했다.
먼저, 삭제하는 방법
1. commit log 확인하기
git log
commit 이름과 날짜로 어느 때로 돌아가야 할 지 확인한다.
로그 창을 벗어나서 다시 터미널로 돌아가고 싶다면 Q 누르면 됨.
2. commit 삭제
최신 순으로 하나씩 log가 삭제된다. git log로 잘 확인하면서 하나씩 삭제해야 함.
git reset HEAD^
이런 방식으로 오류가 생긴 commit까지 삭제한 후 다시 commit하면 됨!
하지만 어림도 없지, 파일 삭제할 때 permission denied 오류가 떴다.
sudo chown -R your_login_name /path/to/folder
위 명령어를 통해 권한 얻을 수 있다.
실수로 지우면 안되는 commit을 reset한 경우에 복구시키는 방법. (알고 싶지 않았다)
1. 이전에 했던 작업들 확인
git reflog
위 명령어를 통해 "commit num HEAD@{숫자}: 작업 내용" 과 같은 형식으로 프린트된 이전 작업들을 확인할 수 있다.

2. 원하는 HEAD로 이동
git reset --hard HEAD@{1}
다시 git log를 확인하면 원하는 head까지의 작업이 생성된 것을 볼 수 있다.
'git' 카테고리의 다른 글
| [git] git status, staging area (0) | 2022.03.21 |
|---|---|
| [git] Fork 협업 플로우 (0) | 2022.03.21 |
| [git] Forked repo에서 origin repo pull하기 (0) | 2022.03.08 |
| [git] .gitignore 파일/폴더 ignore하기 (0) | 2022.03.04 |
| [git] remote master->branch 만들기 (0) | 2021.10.07 |