
git을 통해 버전 관리를 했다고 가정하자.
버전 관리를 한다는 것은 어느 시점의 버전을 다운로드 하거나 재작업이 가능하다는 얘기다.
단순히 기록만 한다는 의미는 아니다.
따라서, git의 개념에서 중요한 것은 과거로 돌아가는 방법을 아는 것이다.
git에서 버전을 과거로 돌아가는 방법은 두가지가 있다.
Revert와 Reset이다.
1. Reset
가장 깔끔한 과거 처리 방식이다. 특정 시점으로 돌아가서 이후 동작들까지 다 지워버린다.
예를 들어, 시간의 순서대로 아래와 같이 git에 버전 관리가 되어 있다고 하자.
이전 (A) -> (B) -> (C) -> (D) 최근
(C)의 시점으로 reset 해버리면, (D)는 사라져 버리는 것이다.
혼자서 작업하는 경우라면 모를까, 협업하는 환경에서는 Reset은 정말 간혹 가다 사용할 것 같다.
[작업 순서]
1> 버전 내역 보기 : git log2> 특정 버전으로 돌아가기 : git reset --hard (해시코드)
(ex) git reset --hard f6adeee040d4d0e3
2. Revert
reset의 경우 HEAD의 위치를 변경하는 반면, revert는 commit의 내용을 새로 만들어 준다.
직전 내용으로 돌리는 경우와 특정 커밋의 내용을 되돌리는 방법이 있다.
(1) 직전 내용으로 되돌리는 커밋
git revert HEAD
(2) 특정 커밋의 내용을 되돌리는 방법
git revert [COMMIT_ID]
revert는 기본적으로 commit을 되돌리면서, 자동 commit 이된다.
만약 커밋을 따로 하고 싶다면, 아래와 같이 옵션을 추가하면 된다.
git revert --no-commit [COMMIT_ID]
최근댓글