본문 바로가기
Computer Science/Git

[Git] Git 되돌리기 Reset & Revert

by happy coding! 2019. 5. 16.
반응형

이미 커밋한 버전을 취소하는 방법

  • Git Reset
    1. SourceTree 에서 되돌리고 싶은 버전을 선택하고 마우스 우클릭을 누른다.
    2. Reset current branch to this commit 을 선택한다.
    3. Using mode 에서 'Hard - discard all working copy chages'를 선택하고 OK를 누른다.
    4. 선택한 버전 이후의 모든 버전이 삭제되고, 현재 커밋하지 않은 내용, stage에 올려놓은 내용 전부 삭제된다. (working copy의 상태도 변경됨)
    5. 이 기능은 조심해서 다루어야 한다.
  • 되돌린 버전 이후의 버전들은 삭제하면서, working copy의 상태는 아직 커밋하지 않은 상태로 유지하고 싶다면, 이때도 reset을 사용한다.

    1. sourceTree에서 되돌리고 싶은 버전을 선택하고 마우스 우클릭을 누른다.
    2. Reset current branch to this commit을 선택한다.
    3. Using mode 에서 'Mixed - keep working copy but reset index' 를 선택하고 OK를 누른다.
    4. 되돌린 버전 이후의 버전들은 삭제되고, Uncommitted changes에 working copy의 상태는 커밋하기 전 상태로 남아있다.
  • 명령어

          $ git reset {commit번호}
  • Git reset의 3가지 옵션

    • soft
    • mixed
    • hard
  • Git Revert

    1. 예전 버전으로 돌아가는 또 다른 방법
    2. Revert는 선택한 버전을 취소해서 그 버전 이전 상태로 돌리는 것이 revert 이다.
    3. 취소하고 싶은 버전을 선택하고 마우스 우클릭을 누른다.
    4. reverse commit을 선택한다.
    5. 되돌린 버전 이후의 버전을 삭제하지 않고, 이전 버전으로 커밋되며 새로운 버전이 만들어진다.
    6. Reverse commit 을 누르면 선택한 버전의 상태로 revert 된다.
    7. 여러 단계 전의 버전을 revert하면 confilct(충돌)가 발생할 수 있기에 순차적으로 revert 하는 것을 권장한다.
  • 명령어

          git revert {commit번호}    
  • reset과 revert의 차이

    • reset : 선택한 버전의 상태로 돌아오는 것. 버전을 지운다. 특정 커밋으로 돌아갈 수 있는데, 되돌린 버전 이후의 버전들은 히스토리에서 삭제 된다.
    • revert : 선택한 버전을 취소해서 그 이전 상태로 되돌리는 것. 버전을 유지하면서 되돌린 버전으로 커밋을 만들어준다. 특정 버전으로 되돌아갈 수 있지만, 되돌린 버전 이후의 버전들의 이력은 남아있다.

     

[Reset vs Revert]

반응형

댓글