본문 바로가기
Git|GitHub

Git - 버전 관리(작업 되돌리기)

by hyeon1016 2024. 10. 1.

작업 되돌리

Git 명령어

명령어 설명
$ git restore 파일명 modified 상태의 파일을 수정되기 전으로 되돌릴 수 있다.
$ git restore --staged 파일명 스테이징된 파일을 modified 상태로 되돌리는 것이다.
$ git reset HEAD^ 가장 마지막에 한 커밋을 취소하는 명령어로, 커밋과 스테이징이 함께 취소된다.
$ git reset --hard 해시값 HEAD를 해당 커밋으로 이동시키고 이후의 모든 변경 사항을 제거한다.
$ git revert 해시값 지정한 커밋을 되돌리는 새로운 커밋을 생성한다.
이 방법은 커밋을 취소하면서 동시에 히스토리에 취소했다는 기록을 남기는 것이다.

 

 

수정된 파일 되돌리기

$ git restore 파일명

 

modified 상태의 파일을 수정되기 전으로 되돌릴 수 있다.

 

modified ㅡ> unmodified

 

1. 파일 수정

hello.txt에서 tree를 3으로 변경

 

깃 상태 확인

$ git status

 

Change not staged for commit : 스테이징 되지 않음.

midified : 수정된 파일이 있음

 

2. 이전 상태로 되돌리기

$ git restore hello.txt

 

이전 작업으로 되돌리기

modified ㅡ> unmodified

 

 

3. 파일 출력하기

$ cat hello.txt

 

3ㅡ>tree로 복원

 

 

스테이징 취소하기

$ git restore --staged 파일명

 

스테이징된 파일을 되돌리는 명령어다.

 

staged ㅡ> modified

 

1. 파일 수정하기

 

hello2.txt 파일의 내용을 A, B, C, D로 수정

 

 2. 스테이지 올리기

$ git add hello2.txt

 

 

Git 상태 확인

$ git status

 

Changes to be committed : 커밋할 파일이 있음

 

3. 작업 되돌리기

$ git restore --staged hello2.txt

 

스테이징된 hello2.txt 되돌리기

staged ㅡ> modified

 

Git 상태 확인

$ git status

 

Changes not staged for commit : 스테이징 전으로 돌아감

 

 

최신 커밋 취소하기

$ git reset HEAD^

 

가장 마지막에 한 커밋을 취소하는 명령어로, 커밋과 스테이징이 함께 취소된다.

 

modified상태가 된다.

 

1. 파일 수정

 

hello2.txt의 내용에 E를 추가한다.

 

2. 스테이징 커밋 한번에 하기

$ git commit -am "최신 커밋 취소"

 

한 번 커밋된 파일은 -am을 사용해 스테이징과 커밋을 한번에 할 수 있다. 

 

 

3. 최신 커밋 취소

$ git reset HEAD^

 

Git 히스토리를 확인하여 "최신 커밋 취소"가 사라진 것을 확인

 

 

Git 상태를 확인하여 hello2.txt 파일이 modified 상태인 것을 확인

 

 

 

특정 커밋으로 되돌리기

$ git reset --hard 해시값

 

HEAD를 해당 커밋으로 이동시키고 이후의 모든 변경 사항을 제거한다.

 

R1 ㅡ> R2(HEAD)

R1(HEAD)

 

 

1.파일 생성

 

rev.txt 파일 생성 후 a입력

 

2. 스테이징 및 커밋

$ git add rev.txt
$ git commit -m "R1"

 

Git 히스토리에서 R1이 커밋 되었는지 확인

 

 

3. 파일 수정 후 커밋

 

rev.txt 파일에 b를 추가하고, 커밋한다.

$ git commit -am "R2"

 

동일한 방법으로 c를 추가하고 R3를 커밋, d를 추가하고 R4를 커밋한다.

$ git commit -am "R3"
$ git commit -am "R4"

 

 

히스토리에 R1, R2, R3, R4가 있는지 확인한다.

 

 

4. 커밋 되돌리기

 

$ git reset --hard R2해쉬값

 

R2 커밋으로 되돌아가고, 이후의 커밋을 제거한다. 

 

Git 히스토리에서 최신 커밋이 R2인지 확인한다.

 

이후에 cat으로 rev.txt를 출력하면 a와 b가 출력된다.

 

 

특정 커밋으로 되돌리기

$ git revert 해시값

 

지정한 커밋을 되돌리는 새로운 커밋을 생성한다.

이 방법은 커밋을 취소하면서 동시에 히스토리에 취소했다는 기록을 남기는 것이다.

 

 

1. 파일 수정

 

rev.txt파일에서 e를 추가한다.

 

2. 스테이징 및 커밋

$ git add rev.txt
$ git commit -m "R5"

 

수정한 파일의 스테이징 및 커밋을 진행하고, Git 히스토리를 통해 R5를 확인한다.

 

 

3. 커밋 되돌리기

$ git revert R5의해시값

 

R5 커밋을 취소하고 직전 커밋인 R2로 되돌아간다.

 

이후 편집기가 자동으로 나타나고, 커밋 메세지를 입력할 수 있게된다.

Revert "R5" 과 This rverts commit ~~~~의 사이의 공간에 커밋 메세지를 작성한다.

 

i를 눌러 입력을 시작할 수 있고, esc를 눌러 입력을 종료할 수 있다.

입력을 끝마쳤다면 --INSERT--부분에 :wq를 입력하고 엔터를 누르면 종료된다.

 

i : 입력

esc : 입력 종료

:wq : 종료 

 

 

R5의 커밋이 보류 되었음을 확인할 수 있다.

'Git|GitHub' 카테고리의 다른 글

Git - 브랜치(문서 병합)  (0) 2024.10.06
Git - 브랜치(병합)  (0) 2024.10.02
Git - 브랜치  (1) 2024.10.02
Git - 버전 관리  (2) 2024.10.01
Git - Git란 무엇인가?  (2) 2024.09.30