본문 바로가기

Git

Git 버전 되돌리기

버전 되돌리기

 

  저번 글에서 버전을 확인하는 방법을 알아보았다. 버전을 확인했으니, 이번엔 버전을 되돌리는 작업을 알아보겠다. 새로운 버전을 만드는 것만이 버전 관리가 아니다. 새로운 버전에 오류가 있을 경우에 이전 버전으로 되돌리는 작업까지도 버전 관리의 하나이다. 이번에는 그 과정을 수행하는 명령을 알아보겠다. Git에는 버전을 되돌리는 명령이 2가지가 있다. 'reset'과 'revert'이다. 두 가지가 어떻게 다른지 알아보자.

 

RESET

  여러 개의 버전을 만들어줄 파일을 하나 만들겠다. 파일 이름은 'test.txt'이다.

 

 

이 파일을 총 5개의 버전으로 만들어 보겠다. 버전마다 'version 2', 'version 3', ... 식으로 내용을 추가하겠다.

 

 

이 때, 한 가지 상황을 만들어 보겠다. version 3 이후의 버전들이 심각한 오류가 생겨서 'test.txt' 파일을 버전 3으로 되돌려야 한다. 'reset' 명령을 사용하여 되돌려보겠다. 'reset' 명령을 사용할 때에 어떤 버전으로 되돌릴 것인지 명시해야 하는데, 이 때 commit ID를 사용한다는 점을 명심하자.

 

 

'reset' 명령을 사용한 후에 'git log' 명령으로 commit log를 확인해보면 위와 같이 'version 3' 이후의 log 자체가 사라진 것을 확인할 수 있다. 'reset' 명령은 인자로 넘겨준 commit ID 이후의 모든 작업들을 하기 전 상태로 되돌리는 것이라고 생각하면 된다.

 

REVERT

  'revert' 명령은 'reset'과는 다른 개념을 사용한다. 이번에도 예시를 통해서 알아보자. 현재 'test.txt'는 'version 3'까지의 버전이 남아있다. 변경된 사항을 'version 4'로 새로운 버전으로 만들고, 이 네 개의 버전을 이용해서 확인해보겠다. 'version 4'의 내용을 다시 되돌리기 위해서 'revert' 명령을 사용하겠다. 이 때 넘겨주는 인자는 'reset'과 동일하게 commit ID를 사용한다.

 

 

명령을 수행하면 'commit' 명령을 사용할 때에 나오는 'commit' 설명을 적는 창이 나온다.

 

 

commit 내용을 위처럼 주고 저장해보겠다. 

 

 

'git log'로 'revert' 명령 사용 후의 log를 확인해보니 새로운 버전이 추가된 것을 확인할 수 있다. 새로 추가된 버전은 'revert' 명령의 인자로 넘겨준 'version 4'의 변경 사항을 다시 되돌린 내용을 새로운 버전으로 만든 것이다.

 

  두 명령은 둘 다 버전을 되돌리는 기능을 하고 있지만, 실질적인 내용은 다르다는 것을 이제 알았다. 'reset' 명령은 시점을 되돌리는 명령이고, 'revert'는 되돌리기 전 내용으로 수정해서 그 파일을 새로운 버전으로 만드는 것이다. 이 두 차이점을 인지하고 버전 되돌리기를 사용하도록 하자.

'Git' 카테고리의 다른 글

Git branch  (0) 2019.09.11
Git 버전 관리  (0) 2019.09.05
Git 버전 만들기  (0) 2019.09.04
Git 저장소 만들기  (0) 2019.09.04
Git 설치 (Windows)  (0) 2019.09.04