[Git] Restore, 그리고 reset 활용방법과 복구방법
목 차
- restore를 활용하여 파일 되돌리기
- 최신 commit 수정하기
- Reset
- 실수로 지웠다면?
- Local history
⛔️ 로컬 저장소에서의 변경사항에 대해 작동하며, 원격 저장소에 반영되지 않은 변경사항들에 대해서만 사용하는 것을 권장한다.
restore를 활용하여 파일 되돌리기
되돌리려는 파일이 staging area에 있을경우 아래 명령어를 작성
git restore --staged 파일_이름
되돌리려는 파일이 working directory에 있을경우 아래 명령어를 작성
git restore 파일_이름
⚠️ 유의할 점은 staging area에서 restore를 사용하면 변경사항이 unstaged 상태가 되고 원래의 파일 내용이 유지된다는 것이다. 반면, working directory에서 restore를 사용하면 해당 변경사항이 완전히 지워지고 파일이 변경 전 상태로 되돌아간다는 점이다.
그리고 reset 이라는 명령어도 있는데, reset은 특정 commit으로 작업 내역을 되돌리거나, staging area의 변경 사항을 unstage 하는 데에도 사용된다. 아래에서 reset에 대해서 더 자세하게 알아보려고 한다.
git reset 커밋_해시코드
git reset
최신 commit 수정하기
최신 commit은 --amend 옵션으로 수정할 수 있다.
git commit --amend -m "수정된 메세지"
Reset
reset은 위에서 봤었던 것 처럼 특정 commit으로 되돌릴 수 있다.
그리고 리셋된 작업 변경사항은 working directory로 이동된다.
# 둘 다 특정 커밋으로 초기화하는 명령어 이다.
git reset 커밋_해시코드
git reset HEAD~숫자
reset 명령어에 별도의 옵션을 주지 않으면 --mixed 라는 옵션을 사용한 것과 같다.
mixed 옵션은 변경사항들을 Working directory로 가지고 오게된다.
soft 옵션은 변경사항들을 Staging Area로 가지고 오게된다.
그리고 완전 삭제해버리는 옵션도 있는데 --hard 이다.
실수로 지웠다면?
아래 명령어를 통해서 내가 했었던 작업들의 로그를 볼 수 있다.
그리고 돌아가려고 하는 작업의 해시코드를 복사한다.
git reflog
그리고 다음 명령어를 작성하여 돌아갈 수 있다.
git reset --hard 해시코드
단, commit 하기 전에 --hard로 리셋된 파일은 돌아가기 힘들다.
Local history
commit 전에 파일을 --hard로 리셋했다면, Local history 라는 익스텐션으로 복구할 수 있다.
Revert - history에 남기면서 commit 취소하기
이렇게 취소하게 되면 history에도 남는다. master branch에서 문제가 생겼을 경우 reset이나 restore 보다는 revert를 추천한다.
git revert 해시코드(취소하는)
'Git' 카테고리의 다른 글
[Git] Blame, 파일 편집자 추적하는 방법 그리고 유용한 익스텐션 소개 (0) | 2023.06.29 |
---|---|
[Git] GitHub와 연결하여 서버에 파일 추가하기 (0) | 2023.06.27 |
[Git] Stash란 무엇이고 사용방법 알아보기 (0) | 2023.06.25 |
[Git] rebase는 무엇이고 주의점과 사용방법 (0) | 2023.06.25 |
[Git] Merge 충돌, conflict 해결 방법 (0) | 2023.06.25 |