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

     

    Posted by 서버이야기