본문 바로가기

GIT

GIT CLI - 버전관리 시작하기2(Update, Delete)

반응형
SMALL

이번 글에서는 Git bash를 이용해서 버전관리하는 방법 중 Update와 Delete를 해보겠습니다.

명확하게 Update는 버전관리 시작하기1에서 새 버전을 추가함으로써 Update를 했지만, 계속 버전을 추가하기만 하는 것은 진정한 Update가 아니라고 생각해서 이런식으로 분류했습니다.

앞의 글을 읽지 않으면 처음보는 사람들은 이 글을 이해하기를 어렵다고 생각해서 앞의 글을 먼저 읽어보고 따라서 실습해보거나 생활코딩 강의를 들은 후에 읽는 것을 권장합니다.

1. 버전 간 이동하기

- git checkout [ commit id ] 명령어를 이용하면 현재 버전을 바꿀 수 있습니다.

- HEAD(현재 버전)이 입력한 commit id로 바뀌고, master(최신 버전)이 보이지 않는 것을 확인 할 수 있습니다.

- 여기서 git checkout master 라고 입력하면 master버전으로 이동할 수 있습니다.

2.버전 삭제하기(Delete version)

- 버전을 삭제할 떄는 git reset 이라는 명령어를 사용하게 됩니다.

- git reset은 버전을 삭제하겠다는 의미가 아니라 현재 버전의 상태를 해당 버전의 상태로 바꾸겠다 라는 의미로 생각해야 합니다.

- 예를 들어, 버전이 1,2,3 이렇게 3개가 있다고 하고, 내가 버전3에 있다가 버전 2로 가겠다는 것은 버전2으로 모든 파일의 상태를 바꾸겠다는 뜻이고, 실제로 수정했던 모든 파일이 버전2로 돌아가게 되는 것이며, 이후 버전들은 모두 사라지게 됩니다.

[따라하기]

- 먼저, git log 명령어를 이용해 가지고 있는 버전 전체를 출력합니다.

- commit 옆에 알파벳과 숫자가 혼합된 문자열이 있습니다.

- 해당 문자열을 copy해서 가지고 있는 상태를 유지합니다.(드래그 후 우클릭 copy 또는 Ctrl + Ins)

- git reset --hard [commit id] 를 입력합니다.

- git reset --hard abd81007b84fce4c08494ae42c9e8d986887b16b

- 이렇게 하면 HEAD 가 해당 버전이라는 문자열이 출력되고, git log를 했을 때 선택했던 버전 이후 버전은 사라지게 됩니다.

- 내가 돌아가고자하는 버전의 id를 넣는 것이 중요합니다.

- 여기서 --hard 는 어떤 식으로 reset을 할 것인가 선택하는 것 중 하나인데, --hard가 가장 강력한 것이라고 합니다.

- --hard말고 다른 방식을 하게되면 다양한 형태로 reset을 할 수 있는데, soft, mixed 등 아주 여러가지가 있습니다. ( git reset --help 를 이용해서 어떤 것들을 어떤 경우에 사용하는지 알아 볼 수 있습니다.)

- git revert [ commit id] 명령어를 사용하게되면 현재 버전을 되돌릴 수 있습니다.

- reset 비슷하지만, 삭제와 보존을 동시에 할 수 있습니다.

- 명령어를 사용하게되면, 에디터가 켜지고 버전내용을 입력할 수 있습니다.

(기본적으로 돌아가려고하는 버전의 내용과 commit id를 출력하줍니다.)

- 최종적으로, 돌아가게 된 버전이 최신 버전인 상태로 기존 버전을 삭제하지 않고 새로운 버전으로 생성됩니다.

- 여러 버전을 건너뛰고 몇 단계 전의 버전으로 돌아가려고 할 때, 다양한 문제들이 발생할 수 있기 때문에, 생활코딩에서는 여러 버전의 전 단계로 가고 싶을 때에는 revert를 바로 전 버전으로 여러번 실행하는 것을 권장하고 있다.

이상으로 GIT CLI 버전관리 강의 내용을 기반으로 한 글 작성을 마치겠습니다.

부족한 부분은 댓글 남겨주시거나 아래 생활코딩 강의 들어보시면 좋을 것 같습니다.

반응형
LIST