Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조
- 공룡게임
- typeORM
- MongoDB
- 정렬
- class
- Nest.js
- 게임
- cookie
- Sequelize
- react
- mongoose
- jest
- Express
- GIT
- game
- nestjs
- dfs
- MySQL
- Queue
- JavaScript
- AWS
- OCR
- flask
- Python
- TypeScript
- nodejs
- Dinosaur
- Bull
Archives
- Today
- Total
포시코딩
Eclipse Git(2) - Reset, Revert (Git을 되돌리는 방법) 본문
728x90
git에서 index란?
git의 commit 작업은 '작업 트리'에 있는 변경 내용을 저장소에 바로 기록하는 것이 아니라
그 사이 공간인 index에 파일 상태를 기록(state - 스테이징)하게 되어 있다.
따라서 저장소에 변경 사항을 기록하기 위해서는 기록하고자 하는 모든 변경 사항들이 index에 존재해야 한다.
git을 되돌리는 방법 두 가지
Reset
- 이력을 없애면서 과거로
- 이미 push한 상태에 대해서는 소스를 되돌아가 다시 보는 기능 정도로만 사용 가능
- 보통 push하기 전 잘못된 내용을 local에 commit한 상태에 대해서만 특정 commit으로 되돌아가
다시 알맞게 수정 후 commit하는 용도로 사용
Revert
- 이전에 작성한 commit을 안전하게 지우고 싶을 때
- 과거로 돌아가지만 돌아간 사실에 대해 commit을 남김
- push 되어 있는 상태에 대해서 다시 되돌아갈 때 이 기능 사용
직접 해보기
먼저 흐름을 파악하면 다음과 같다.
- 초기 상태
- reset 1. 로컬에서 commit을 잘못 했을 때 다시 reset 한 다음 새로 commit
- reset 2. 예전 코드 확인용으로 쓸 경우
- reset 3. 다시 최신화 하기
- revert. 전부 push 했지만 되돌려야 하는 경우
초기 상태
reset 1. 로컬에서 commit을 잘못 했을 때 다시 reset 한 다음 새로 commit
- 7-1. CC 추가 라는 commit이 잘못된걸 인지
- Soft: commit만 되돌리고 싶을 때
- Mixed: 변경한 인덱스의 상태를 원래대로 되돌리고 싶을 때
- Hard: 최근의 커밋을 완전히 버리고 이전 상태로 복구
- 되돌아간 모습
- 알맞게 변경한 후 다시 commit을 진행한 모습. (예전 7-1로 commit한 내용은 볼 수 없다.)
reset 2. 예전 코드 확인용으로 쓸 경우
- 7-2 까지 remote에 push 된 상태에서 예전 코드를 확인하고 싶은 경우이다.
- 5. aa commit으로 돌아온 모습을 볼 수 있다.
- 이 상태에서 내용 수정 및 commit을 하고 push를 시도하면 conflict가 발생하니 주의
- 만약 과거로 돌아간 다음 다시 수정해야 한다면 하단에서 나오는 revert를 사용하면 된다.
reset 3. 다시 최신화 시키기
- reset하여 master 브랜치와 2개의 commit 만큼의 차이가 나기 때문에 위와 같은 표시 확인 가능.
- pull로 땡겨오면 다시 코드 및 index를 최신 상태로 만들 수 있다.
revert. 전부 push 했지만 되돌려야 하는 경우
- 7-2 까지 push를 진행했는데 다시 보니 7번째 줄의 "DD" 대신
5번 commit으로 돌아가 KK로 진행해야 했다고 가정해보자
이 때, revert를 사용하면 된다.
- 406cb51 5. aa commit에 대해 Revert Commit을 누르면
- conflict가 발생한 것을 확인할 수 있다. (같은 파일에 대해 내용이 다른 경우)
- history에서 돌아갈 commit을 더블클릭하면 merge tool과 비슷한 창이 뜬다.
수정 후 commit, push까지 완료한 모습
이렇게 revert를 통해 잘못된 commit들에 대해서까지 수정을 진행해보았다.
* 23년 1월 19일 기준으로 다크모드 시 가독성 떨어지는 문제 해결
* 19년도 기준으로 작성된걸 정리한 내용이라 현재 버전과 보이는게 다를 수 있습니다.
728x90
'Git' 카테고리의 다른 글
Eclipse Git(6) - Stash (0) | 2022.06.26 |
---|---|
Eclipse Git(5) - Cherry-Pick (0) | 2022.06.26 |
Eclipse Git(4) - Rebase (0) | 2022.06.26 |
Eclipse Git(3) - Merge (0) | 2022.06.26 |
Eclipse Git(1) – Commit, Push, Clone (0) | 2022.06.23 |