티스토리 뷰

Git

버전 삭제 및 되돌리기

돈파치 2021. 10. 4. 00:29
반응형

버전 삭제

특정 과거의 버전으로 돌아가고 그 이후의 버전을 지우고 싶을 경우 돌아가고자 하는 버전의 커밋 일련번호 앞 7자리를 복사하고 다음과 같이 터미널에 입력한다.

 

git reset --hard 커밋 일련번호 앞 7자리

 

해당 버전으로 reset하겠다는 말은 해당 버전과 그 이후의 것들을 삭제하겠다는 것이 아니라 해당 버전으로 돌아가고 그 이후의 버전을 삭제하겠다는 것을 의미한다.

이러한 방법으로 삭제한 버전으로 돌아갈 수 없기 때문에 신중히 선택해야 한다.

버전 되돌리기

이미 commit한 상태에서 해당 commit을 취소하고 commit 이전 상태로 되돌리고 싶은 경우 다음과 같이 다양하게 되돌리는 방법이 있다.

git reset --soft HEAD^

git commit하기 직전의 상태로 되돌리는 것을 의미

 

git reset (--mixed) HEAD^

git add하기 직전의 상태로 되돌리는 것을 의미

 

git reset --hard HEAD~

수정하기 전의 상태로 되돌리는 것을 의미

 

버전 되돌리기(응용)

git reset HEAD~1과 같이 명령어 뒤에 숫자를 붙이면 몇 커밋 이전으로 되돌아가며 add하기 직전의 상태로 설정할 수 있다.

 

예: git reset (--mixed) HEAD~2 경우 2커밋 이전의 add하기 직전의 상태로 되돌린다는 것을 의미한다.

 

한편, 과거의 특정 버전으로 돌아가고 해당 버전을 최신 버전으로 새롭게 추가하고 싶을 경우 현재 최신 버전의 커밋 일련번호 앞 7자리를 복사하고 터미널에 아래와 같이 입력한다.

 

git revert 특정 버전의 커밋 일련번호 앞 7자리

 

해당 버전의 파일들을 수정할 수 있으며 수정 후 저장하고 나오면 된다.

이렇게 하면 새로운 버전이 추가되며 revert "새로 설정한 커밋명"이라는 커밋명이 추가된다.

즉, 원래 최신 버전 위에 이전 버전이 최신 버전으로 새로 추가되는 것이다.

만약 다시 원래 최신 버전으로 돌아가고 싶으면  위에서 설명한 reset을 통한 버전삭제 작업을 하면 된다.

 

한편, 특정 과거의 버전을 revert하는 과정에서 충돌이 일어날 수 있다.

충돌 관련하여 추후 블로그에 게시물을 업로드할 생각이다.

 

revert는 언제 쓰는 것이 좋을까? 

한편 reset하면 될 것을 왜 revert를 해서 commit을 하나 더 늘리냐고 의문을 가질 수 있다.

revert는 commit 이력을 이미 원격 저장소에 push해버린 경우 자주 사용한다.

원격 저장소에는 이미 원치 않은 commit 이력이 저장되었기 때문에 클라이언트에서 reset을 하여 force push를 하면 협업에 문제가 생길 수 있기 때문이다.

그래서 원치 않은 commit 위에 과거 버전을 새로운 버전으로 추가하는 revert를 선택하는 것이다.

반응형

'Git' 카테고리의 다른 글

협업 관리  (0) 2021.10.04
백업관리2  (0) 2021.10.04
백업 관리1  (0) 2021.10.04
브랜치 관리  (0) 2021.10.04
버전 추가 및 조회  (0) 2021.10.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함
반응형