728x90
반응형
git에서 코드를 과거로 되돌리는 방법 두 가지는 리셋(reset)과 리버트(revert)이다.
다른 사람들과 함께 작업할 때 내가 커밋한 이후 다른 작업자의 커밋들이 존재할 때, 내가 작업한 내역만 삭제하고 싶다면 리셋이 아닌 리버트를 사용해야 한다.
다른 사람들의 작업에는 상관없이 내가 작업한 내용을 삭제하는 히스토리를 남겨서 다른 작업자의 커밋에는 아무런 영향이 없도록 한다.
리셋은 작업 내역을 그냥 삭제하지만, 리버트는 무엇을 취소했는지를 작업 내역에서 확인이 가능하다.
리셋 (reset)
- 이전 상태로 되돌아 가거나 특정 커밋을 삭제할 때 사용
- 과거로 돌아간 다음 이후 행적은 작업 내역에서 삭제
- 되돌리고자 하는 시점의 해시값 필요
git reset --hard f97c0c44eb5cea0e
reset 명령의 세 가지 옵션은 --hard, --mixed, --soft 가 있다.
- git reset --hard : 작업 내역 자체를 지움
- git reset --mixed : 변경 사항을 스테이지 영역에서만 제거
- git reset --soft : 변경 사항을 저장소에서만 제거하고 스테이지 영역에 남김
리버트 (revert)
- 이전 상태로 되돌아 가면서 새로운 커밋을 생성하여 삭제된 내용을 되돌리는데 사용
- 과거로 돌아간 다음 이후 내역을 삭제하지 않고 되돌린 내역까지 기록으로 남길 때 사용
- 내가 취소할 커밋의 해시값 필요
git revert 2eab471846c765dec2e
커밋하지 않고 리버트 하기
리버트 명령뒤에 --no-commit 을 추가하면 커밋되지 않은 상태가 된다.
한 커밋에서 리버트도 하고 다른 변경사항까지 더한 다음에 커밋할 때 사용
git revert --no-commit 2eab471846c76
되돌아 가고자 하는 해시값을 입력하면 해당 시점으로 돌아가지만 커밋은 되지 않은 상태로 남는다.
728x90
반응형
'IT & Dev.' 카테고리의 다른 글
[git] 태그 (tag), 꼬리표 달기 (0) | 2023.12.12 |
---|---|
[git] 설정파일 알아보기 (0) | 2023.11.27 |
구조 분해 할당 (destructuring) (0) | 2023.10.22 |
화살표 함수 구문 (0) | 2023.10.20 |
package-lock.json 파일의 용도는? (0) | 2023.10.08 |