Git 배우기 -3 -Git Command 취소

  • by

Git에서 코드를 업데이트하는 과정은 다음과 같습니다.

이 게시물은 이러한 프로세스별로 실수가 발생했을 때 어떻게 취소/되돌아가는지 배웁니다.

  1. git add
  2. git commit -m””
  3. git push

예를 들어, 브랜치로 파일을 업데이트했습니다.

(수정되었다고 M이라고 쓰여져 있습니다)



1. git add 취소 방법

코드: git reset HEAD

설명: git add test.py에서 staging area로 파일을 추가하고 git reset HEAD test.py에서 파일을 working directory로 되돌립니다.



2. git commit 취소법

git reset 안에 –soft & –mixed & –hard 총 3가지의 방법이 있다.

2.1 git reset –soft

코드: git reset –soft HEAD^~1 또는 git reset –soft “HEAD^”

설명: git add &git commit -m “” 이후에 업데이트된 내용은 local repository에 저장됩니다.

git reset –soft HEAD^를 사용하여 커밋하기 전의 상태입니다.

staging area로 돌아갑니다.

~1의 의미는 마지막 커밋을 취소한다는 의미다.

~2는 마지막 두 커밋을 취소한다는 의미다.



2.2 git reset –mixed

코드: git reset –mixed HEAD^~1 또는 git reset –mixed “HEAD^”

설명: git reset –mixed HEAD^를 사용하여 커밋 전의 상태 working directory로 돌아갑니다.

(다시 커밋하려면 git add에서 다시 시도해야합니다.

)


2.3 git reset –hard

코드: git reset –hard HEAD^~1 또는 git reset –hard “HEAD^”

설명: git reset –hard HEAD^를 사용하여 완전히 업데이트 전 상태로 되돌리기. (파일을 보면 업데이트된 부분이 모두 사라집니다)



3. git push 취소 방법

코드: git reset HEAD^~1 또는 git reset “HEAD^” 및 git push -f origin

설명: git reset HEAD^를 사용하여 working directory 상태로 되돌리기. 그리고 다시 새로운 업데이트를 푸시할 때 git push -f origin test_branch로 강제로 푸시한다.

마지막 사진을 보면 첫 번째 사진 푸시 ‘549a87b’가 존재하지 않습니다.

push -f로 한 ‘ad859fc’ push가 ‘549a87b’를 덮어썼기 때문이다.

* 덮어쓰는 것으로, 이전 단계의 push history가 사라지므로 매우 주의해야 한다.