프로그래밍/Git

Git - git add, commit, push 취소

CastleMouse 2021. 12. 27. 23:05

제작 중이던 게임의 폴더에 실수로 커다란 용량의 파일을 넣어놨는데 그대로 commit 하고 push 해버렸다. 바로 Large File이라며 오류가 떠서 삭제하고 다시 commit 했는데 이러면 반영이 안 되는 줄 몰랐다... (git add -u해도 안돼!!! ㅠㅠ) 그래서 오늘은 실수로 해버린 push를 아예 취소하는 방법을 알아보겠다. 덤으로 add랑 commit도!

1) git add 취소

git add .로 파일에 대해 add 명령이 적용된 경우(즉 staged 상태로 들어간 경우), git reset HEAD 파일명 으로 git add를 취소한다. 만약 파일명을 안 쓰면 add 된 모든 것을 취소한다.

예를 들면 다음과 같이 한다.

$ git add .

$ git reset HEAD file.txt

2) git commit 취소

git commit을 취소하고 싶으면, git reset HEAD^ 로 취소할 수 있다.

예를 들면 다음과 같다.

$ git reset --soft HEAD^                -> 이 경우는 commit 취소. 그리고 파일들은 staged상태

$ git reset HEAD^                          -> 이 경우는 commit 취소. 그리고 파일들은 unstaged상태

$ git reset HEAD~3                        -> 이 경우는 마지막으로 한 commit 3개를 취소

3) git push 취소

git push를 취소하고 싶으면 일단 git reset HEAD^로 commit을 취소한 뒤, git reflog로 원하는 시점을 확인 후 git reset HEAD@{해당번호} 로 되돌려야 한다. 아래와 같이 하면 된다.

$ git reset HEAD^                          -> 일단 commit 취소부터 하고,

$ git reflog                                     -> 내가 commit 한 로그가 뜬다. 여기서 되돌리려는 시점의 번호를 보고,

$ git reset HEAD@{3e8ca0}           -> 이러면 해당 시점으로 디렉터리가 돌아간다.

 

뭐 그다음에는 다시 push 하든지 하면 된다. 이렇게,

$ git commit -m "push cancel"    -> 이제 돌려놨으니까 다시 commit 하고

$ git push origin main                  -> push 한다.

 

 

 

앞으로는 디렉터리에 뭐가 들어있나 꼼꼼히 확인하고 push 하는 습관을 길러야겠다.