[git/github] git reset

c_10.log·2023년 3월 4일
0

github

목록 보기
4/8
post-thumbnail

git으로 되돌리자.

  • 옵션에 따라 되돌리는 범위를 지정할 수 있다.
  1. 수정한 것까지 통째로
git reset --hard HEAD^	//쎄게 되돌리자
  1. add한 것(staging area에 있는 것)까지
git reset --mixed HEAD^	//적당히 되돌리자
  1. commit한 것까지
git reset --soft HEAD^	//약하게 되돌리자

HEAD : 현재 작업중인 브랜치/커밋 중 가장 최근 커밋
^ : 하나 되돌리자

ex) 가장 최근 커밋으로부터 2개 전으로 되돌리자

git reset --hard HEAD^^

실습

reset 환경 만들기

1(1). 새로운 폴더, 새로운 파일을 만들어서

git init → git add. → git commit -m "first commit"

까지 완료

1(2). 버전을 업데이트 하여 다시 add, commit 진행

→ 현재 상태는 Repository에 두개의 버전이 존재함(push하기 직전)

2(1). test.txt의 문자열을 변경함(이는 아직 working directory에서만 변경된 것)

2(2). 해당 txt파일을 staging area로 옮김

git add test.txt

→ 현재 상태는 Repository에 두개의 버전, Staging area에 1개의 txt가 존재

3(1). test.txt의 문자열을 변경함(이는 아직 working directory에서만 변경된 것)

→ 현재 상태

reset 연습

  1. git reset --hard HEAD^

→ repository에 올라간 최근 버전 1개 뿐만 아니라, staging area, working directory에 있는 파일까지 모두 그 전 상태로 변경됨.
log를 보면 최근 commit한 버전이 없어짐을 확인할 수 있고, status를 보면 비어있음을 알 수 있음.

  1. git reset --mixed HEAD^ (--mixed 는 default 값)

→ repository에 올라간 최근 버전 1개와, staging area에 있는 파일까지 되돌아간 것을 알 수 있음.

  1. git reset --soft HEAD^

0개의 댓글