[git]작업 되돌리기

한상욱·2023년 7월 25일
0

git

목록 보기
5/10
post-thumbnail

들어가며

오랜만에 git관련한 포스팅입니다. 동아리원들에게 Flutter 관련 포스팅으로 지식을 공유하고 있는데요, 게다가 요즘에는 알고리즘에 푹 빠져서 예전에 작성하던 시리즈가 후순위로 밀렸네요 ㅠ 다시 열심히 올리겠습니다.

이전 포스팅에서까지는 스테이지에 올리고, 커밋하는 작업까지 다루었습니다. 이번 포스팅에서는 지금까지의 과정을 되돌리는 것을 해볼게요.

작업 되돌리기

코딩을 하다보면 현재까지 작업을 취소하고 싶은 경우가 있습니다. 저같은 경우에는 열심히 코드를 작성했지만, 원인을 모르는 컴파일 에러가 발생하는 경우 많이 사용합니다. 이거를 하나하나 찾아서 지우는 건 상상도 하기 싫습니다. 이런 경우 아주 유용합니다.

작업트리 내용 되돌리기

저희의 소스코드는 작업트리, 스테이징 그리고 저장소로 분리되어 관리되고 있어요. 일단은 작업트리에서 작업을 취소하는 것에 대해서 알아보겠습니다. 이를 위해서 이전에 만들었던 test.txt의 내용을 확인하겠습니다.

이제 이 파일의 내용을 수정해줄겁니다. 저는 hello world를 추가하겠습니다.

아직 이 파일은 스테이징하지 않았습니다. 관련사항을 알기 위해서는 git status 명령어를 입력해야하겠죠?

파일의 상태를 확인해보니 git restore 명령어를 사용하면, 파일의 상태를 되돌릴 수 있다고 합니다. 이 명령어를 통해 쉽게 파일을 되돌릴 수 있어요. 한번 해보죠. 그리고 버전마다 지시하는 명령어는 다를 수 있습니다.

원래 파일로 잘 돌아왔군요 !

스테이징 되돌리기

만약 실수로 코드를 스테이징했다면 어떻게 취소할까요? 다시 파일의 내용을 추가하겠습니다.

이제 스테이징까지 해보겠습니다. 그러고 나서 파일의 상태를 한번 확인하겠습니다.

역시나 작업을 취소하려면 이렇게 하라는 조언이 있네요? 이 명령어를 이용해서 스테이징을 취소할 수 있습니다. 물론, 버전마다 명령어가 다를 수 있으니 git status로 확인해보세요 :)

명령어를 이용했더니 스테이징이 취소되어서 다시 modified 상태가 된 것을 알 수 있습니다. 여기서 이전에 작업트리에서 되돌리는 명령어를 사용하면 아예 내용을 되돌릴 수 있습니다. 절대로 스테이징 취소했다고 내용까지 취소되는게 아니에요.

최신 커밋 되돌리기

이제는 스테이징과 커밋까지 완료한 파일을 되돌릴 겁니다. test.txt파일의 내용을 스테이징과 커밋을 진행하겠습니다. 커밋 메시지는 아래와 같습니다.

이제 git reset 명령어를 이용해서 커밋을 되돌려보겠습니다. git reset HEAD^는 가장 최신의 커밋을 되돌리는 명령어입니다. HEAD^라는 표현은 현재 HEAD가 가르키는 브랜치의 최신 커밋을 의미해요. 한번 수행하겠습니다.

수행했더니, unstaged changes라고 합니다. 커밋도 취소되고 스테이징도 취소된겁니다.

profile
개발공부를 기록하자

0개의 댓글