git add 취소하기, git commit 취소하기, git push 취소하기

Goal

  • git add를 취소할 수 있다.
  • git commit을 취소할 수 있다.
  • git push를 취소할 수 있다.
  • untracked 파일을 삭제할 수 있다.

git add 취소하기(파일 상태를 Unstage로 변경하기)

이때, git reset HEAD [file] 명령어를 통해 git add를 취소할 수 있다.


git commit 취소하기

commit 취소하기

commit message 변경하기

TIP git reset 명령은 아래의 옵션과 관련해서 주의하여 사용해야 한다.

TIP 만약 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌리고 싶으면, 아래의 명령어를 사용한다.


git push 취소하기

  1. 워킹 디렉터리에서 commit 되돌린다.
    • 가장 최근의 commit을 취소하고 워킹 디렉터리를 되돌린다.
    • // 가장 최근의 commit을 취소 (기본 옵션: --mixed)
      $ git reset HEAD^
      
    • 원하는 시점으로 워킹 디렉터리를 되돌린다.
    • // Reflog(브랜치와 HEAD가 지난 몇 달 동안에 가리켰었던 커밋) 목록 확인
      $ git reflog 또는 $ git log -g
      // 원하는 시점으로 워킹 디렉터리를 되돌린다.
      $ git reset HEAD@{number} 또는 $ git reset [commit id]
      
  2. 되돌려진 상태에서 다시 commit을 한다.
    $ git commit -m "Write commit messages"
    
  3. 원격 저장소에 강제로 push 한다.
    $ git push origin [branch name] -f
    또는
    $ git push origin +[branch name]
    
    // Ex) master branch를 원격 저장소(origin)에 강제로 push
    $ git push origin +master
    

TIP 경고를 무시하고 강제로 push 하기


untracked 파일 삭제하기

git clean 명령은 추적 중이지 않은 파일만 지우는 게 기본 동작이다. 즉, .gitignore 에 명시하여 무시되는 파일은 지우지 않는다.

$ git clean -f // 디렉터리를 제외한 파일들만 삭제
$ git clean -f -d // 디렉터리까지 삭제
$ git clean -f -d -x // 무시된 파일까지 삭제

TIP option


관련된 Post

References