reset과 revert
1. reset
- reset에 대해 알아봅시다!
- reset은 Git에서 변경 내용을 되돌리거나 작업 디렉토리를 이전 커밋 상태로 되돌리는 데 사용되는 명령어입니다.
- reset을 이용하여, 이전 커밋 상태로 되돌아가봅시다!
- #1. git log를 입력한 후, Add team Dolphins의 커밋 일련번호를 복사해줍니다. (7글자만 복사하여도 가능합니다.)
- #2. git reset --hard 일련번호를 입력하여, 되돌립니다.
→ 다음과 같이 Add team Dolphins로 돌아왔다고 나타납니다.
→ 또한, panthers.yaml이 사라진 것을 확인할 수 있습니다.
2. revert
- 이번엔 revert에 대해 알아봅시다!
- revert란 이전 커밋을 취소하고, 그 변경 사항을 새로운 커밋으로 기록하는 명령어입니다.
- reset과는 달리 히스토리를 변경하지 않고 새로운 커밋을 만들어서, 이전 커밋을 취소합니다.
- 이렇게 함으로써 히스토리가 수정되지 않고, 변경 사항이 롤백되면서 새로운 이력이 생성됩니다.
- #1. git log를 입력한 후, Add Kim to Tigers 커밋의 일련번호를 찾은 뒤, git revert 일련번호를 입력합니다.
→ 그러면 다음과 같이 나타나게 됩니다.
- #2. :wq를 입력해서 보면, dolphins.yaml은 사라지고 Tigers에 member에서 Kim도 사라진 것을 확인할 수 있습니다.
- #3. 이번엔 Replace Eagles with Bears로 revert해봅시다.
→ 그러면 충돌이 발생합니다. 왜인지 Sourcetree에서 찾아봅시다.
- Replace Dolphins with Panthers에서 수정한 bears.yaml과 Replace Eagles with Bears에서 추가한 Bears.yaml이 충돌을 일으키기 때문입니다.
- #4. git rm bear.yaml을 입력하여, 삭제한 후, git revert --continue를 입력해줍니다.
→ :wq로 저장해주면, 정상적으로 돌아왔음을 확인할 수 있습니다.
- git revert --no-commit 일련번호를 입력하면, 돌아오지만 커밋이 되있지 않는 상태로 돌아옵니다.
3. SourceTree로 reset과 revert 해보기
- 이번엔 SourceTree로 진행해봅시다!
- #1. bears.yaml 파일을 삭제하고 .gitignore 파일에 *.config를 입력하여 추가해줍니다.
- #2. hello.txt 파일을 생성 후, hello world라고 입력해줍니다.
- #3. SourceTree에 들어가서 커밋되지 않은 변경사항을 보면, 스테이지에 올라가지 않은 파일이 3개가 있는데 이것들을 스테이지에 올라간 파일 칸에 옮겨줍니다.
- 왼쪽 상단에 커밋 버튼을 누르고 밑에 칸에 Commit with SourceTree를 입력한 후, 커밋을 누르면 정상적으로 커밋이 됩니다.
- 이번엔 Add Kim to Tigers로 revert해봅시다!
- #1. Add Kim to Tigers에서 오른쪽 마우스를 클릭하고 커밋 되돌리기를 눌러줍니다. 그러면 Add Kim to Tigers로 되돌리게 됩니다.
- 이번엔 Replace Dolphins with Panthers로 reset해봅시다!
- #1. Replace Dolphins with Panthers에서 오른쪽 마우스를 클릭하고 이 커밋까지 련재 브랜치를 초기화 버튼을 클릭합니다.
- #2. 그 다음 사용 중인 모드를 Hard로 변경 후, 확인을 누르면 reset이 됩니다.
4. 정리하며
- 지금까지 reset과 revert에 대해 알아보았습니다.
- 다음 시간엔 브랜치(branch)에 대해 알아보겠습니다.
※ 이 글은 얄팍한 코딩사전 님의 유튜브 강의를 참고하였습니다.
'Back-End Study > Git & GitHub' 카테고리의 다른 글
merge와 rebase (0) | 2024.02.05 |
---|---|
브랜치(branch) (0) | 2024.02.05 |
add와 commit (0) | 2024.02.02 |
.gitignore (0) | 2024.01.31 |
SourceTree (0) | 2024.01.30 |