Part 2. 되돌리기

Hyunsu·2023년 3월 22일
0

Today I Learned

목록 보기
20/37
post-thumbnail

오늘은 되돌리기에 대해 공부해 볼 예정이다.

📝 목차

  1. WorkingCopy Index Repository
  2. Reset
  3. Revert

1. WorkingCopy Index Repository

커밋하기 전까지 즉 최초의 버전을 만들기 전까지는 git 이 관리해주지 않는다.
하나의 버전에는 화면과 같이 여러 개의 파일이 올라갈 수 있다.

화면에서 스테이지에 올라가지 않은 파일 공간을 WorkingCopy 라고 부르며 이 공간에 있는 파일들을 체크하는 행위를 add 라고 한다.

스테이지에 올라간 파일 공간을 Index 또는 Staging area 라고 부르며 이곳에 add 한 파일을 올리고 commit 을 하게되면 저장소에 하나의 버전으로 저장된다.

그림으로 나타내면 다음과 같다.


2. Reset

Reset 은 선택한 버전의 상태로 바뀌도록 하는 작업이다. 즉 버전을 삭제하고 이전 버전의 상태로 돌아간다.

예를 들어서 git 수정하기 버전에는 // git 수정하기 문장이 추가되어있다.

그런데 // git 수정하기 문장이 추가되기 전인 InterestManager 버전으로 되돌리고 싶어졌다.
이 때 Reset 을 사용할 수 있다. 화면에서는 이 커밋까지 현재 브랜치를 초기화 를 클릭하면 된다.

Soft 와 Mixed 와 Hard 세 가지 항목이 있는데 Hard 를 클릭해야 완전히 삭제된다.
Mixed 는 저장소는 선택한 버전의 상태로 되돌리되 WorkingCopy 즉 작업 상태는 그대로 유지한다.

주의 사항은 협업을 할 때 이미 올라간 버전은 Reset 을 하면 안된다. 위험한 행동이다 ✍️


3. Revert

Reset 은 완전히 삭제를 하는 것이기 때문에 위험성이 있다. 반면 Revert 는 기록을 훼손하지 않고 과거로 되돌리는 것이다. 즉 버전을 삭제하지 않고 이전 버전의 상태로 돌아간다.

정확하게 말하면 선택한 버전의 이전 상태와 같이 파일의 내용을 변경시켜주고 그런 내용을 가진 새로운 버전이 자동으로 생성된다.

git 수정하기 버전에서 Revert커밋 되돌리기 클릭하면 해당 버전을 삭제하지 않고 InterestManager 추가 버전의 상태로 돌아간다.

즉 git 수정하기 버전의 이전 상태인 InterestManager 추가 버전으로 파일의 내용을 변경시켜주고 InterestManager 버전의 내용을 가진 새로운 버전이 자동으로 생성된 것을 볼 수 있다.

🎈 Revert 는 역순으로 한 단계씩 해주어야 충돌이 발생하지 않음


추가적으로 git 히스토리를 삭제하고싶어서 방법을 찾아보았는데 git 명령어를 사용하면 된다. 링크는 Reference 에 달아두었다.


Reference

profile
현수의 개발 저장소

0개의 댓글