Git - git revert, git reset - 이전 버전으로 돌아가기
Git - git revert, git reset - 이전 버전으로 돌아가기
이번 포스팅에서는 Git 에서 이전 버전으로 돌아가는 방법에 대해서 알아보도록 하겠습니다
이전글 |
https://server-talk.tistory.com/552 - VCS(Version Control System)과 Git
https://server-talk.tistory.com/553 - Git 설치하기 - Windows
https://server-talk.tistory.com/554 - Git - git init - 프로젝트 관리 설정하기
https://server-talk.tistory.com/555 - Git - git add - 파일추가하기
https://server-talk.tistory.com/556 - Git - git commit - 버전만들기
https://server-talk.tistory.com/557 - Git - 버전관리 처리과정
https://server-talk.tistory.com/558 - Git - git log, git diff - 변경사항 확인하기
Git - 이전버전 변경 이해하기 |
소스코드를 작성하다가 보면은 이전내용으로 변경해야 되는경우가 있습니다 이때 GIT에서 이전 버전으로 돌아갈때 사용되는 방법은 revert 와 reset 으로 나누어 집니다.
revert 는 1번에서 5번까지 있는 Commit에서 3번의 Commit의 내용으로 변경할때 새로운 Commit 버전을 생성하고 3번의 Commit 버전으로 변경되게 됩니다.
그러나 reset 는 1번에서 5번가지 잇는 Commit 에서 3번 Commit의 내용으로 변경하면 5번과 4번 Commit 내용은 삭제되고 3번의 Commit 버전으로 변경되게 됩니다.
Git - 버전 만들기 |
1. Git - commit ver 1
echo "apple soft image" > code1_text.txt
git add .
git commit -m "code1_text ver1"
2. Git - commit ver 2
echo "banana soft image" > code2_text.txt
git add .
git commit -m "code2_text ver2"
3. Git - commit ver 3
echo "melon soft image" > code3_text.txt
git add .
git commit -m "code3_text ver3"
4. Git - commit ver 4
echo "grape soft image" > code4_text.txt
git add .
git commit -m "code4_text ver4"
5. Git - commit ver 5
echo "strawberry soft image" > code5_text.txt
git add .
git commit -m "code5_text ver5"
Git - 이전 버전으로 돌아가기 - revert |
1. 커밋 ID 확인하기
$ git log
commit 812cbf8aef05b7f381cb9e91ba34118937f8421f (HEAD -> master)
Author: server-talk <server@email.com>
Date: Wed Nov 2 19:48:28 2022 +0900
Revert "code5_text ver5"
This reverts commit 3d2c5c68797a24e31b9511afc25b548d8f27b771.
commit 3d2c5c68797a24e31b9511afc25b548d8f27b771
Author: server-talk <server@email.com>
Date: Wed Nov 2 19:48:18 2022 +0900
code5_text ver5
commit 42a240fcfe9f8c487ae943dfda6100a0503f6e3b
Author: server-talk <server@email.com>
Date: Wed Nov 2 19:48:15 2022 +0900
code4_text ver4
commit 66045f3590126c4088851b2ddc80d1200b3bffde
Author: server-talk <server@email.com>
Date: Wed Nov 2 19:48:12 2022 +0900
code3_text ver3
commit ffa43ab9fdf3b6b381dc801883f80ef26112a481
Author: server-talk <server@email.com>
Date: Wed Nov 2 19:48:08 2022 +0900
code2_text ver2
commit 1164f68bf6b990a921ea7a20eb8e4f5e0fd8ac08
Author: server-talk <server@email.com>
Date: Wed Nov 2 19:48:05 2022 +0900
code1_text ver1
2. Git - 이전버전으로 돌아가기 - revert
사용법 : git revert [Commit ID]
$ git revert 3d2c5c68797a24e31b9511afc25b548d8f27b771
위에서 조회한 Commit ID 로 revert를 사용하여 변경할 Commit ID를 지정합니다.
Git - 이전 버전으로 돌아가기 - reset |
1. Git - reset hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리 파일 삭제
사용법 : git reset --hard [Commit ID]
$ git reset --hard 3d2c5c68797a24e31b9511afc25b548d8f27b771
HEAD is now at 3d2c5c6 code5_text ver5
2. Git - reset soft : index 보존, 워킹 디렉토리 파일 보존
사용법 : git reset --soft [Commit ID]
$ git reset --soft 66045f3590126c4088851b2ddc80d1200b3bffde
index 보존, 워킹 디렉토리 파일 보존
3. Git - reset mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리 파일 보존(기본 옵션)
사용법 : git reset --mixed [Commit ID]
$ git reset --mixed ffa43ab9fdf3b6b381dc801883f80ef26112a481