[Git] 파일 내 변경사항 취소하기
👨🏻‍💻iOS 공부/Git

[Git] 파일 내 변경사항 취소하기

728x90
반응형

이번에는 마지막 commit으로 되돌리는 방법에 대해 배워볼 것이다. 

 

기존 파일의 내용을 막 수정했는데 돌이킬 수 없는 오류가 발생했다....

어떻게 해야할까... 당황하지 않고, 이전 버전의 저장본으로 되돌아가면 된다.

 

이에 필요한 기능이 checkout이고, sourceTree에서는 "코드뭉치 버리기"라는 기능을 사용해서 실행할 수 있다. 

 

Git내에서는 아래의 코드로 다시 원복할 수 있다. 

 

// 파일 원복
git checkout -- [filename]

// 상태 확인
git status

 

다만 원복한다는 것 자체가 굉장히 위험하다는 것을 알고 있어야 한다. 수정했던 사항들을 전부 다시 덮어쓰는 것이기 때문에, 수정내용들이 전부 사라지게 된다. 수정한 내용들이 정말 필요가 없을 때 사용하면 된다. 

 

이 뿐만 아니라 add를 통해 staging에 올린 파일을 다시 되돌리기(unstaging) 위한, reset 명령어도 있다. 

 

git reset HEAD [filename]

또는 되돌리고자 하는 커밋을 선택하여 돌릴 수도 있다. 

 

git revert [되돌릴 커밋]

이는 reset과 달리 커밋이 사라지지 않고, 오히려 수정한 메시지로 새로운 커밋이 생성되게 된다. 

 

 

위 처럼 코드 기반이 아니라 sourceTree 내에서도 해결할 수 있다. 

새로운 파일인 GCD 개념 정리.md 파일 추가

 

새로운 추가한 파일의 내용 막 변경했다고 하자. 

빨간색 : 내용 삭제 / 초록색 : 내용 추가

 

위 처럼 수정된 파일은 sourceTree 내에 "스테이지에 올라가지 않은 파일"에 속해지게 되는 것을 볼 수 있다.

 

여기서 우측 상단에 있는 코드 뭉치 버리기를 누르고

신중하게 폐기...

 

변경 사항을 폐기하게 되면

수정 커밋 취소~

이전에 수정했던 커밋이 사라지게 되고, 다시 원래 상태로 파일이 복구되게 된다. 

 

짠! 다시 원복되었다.

 

그래서 commit이 중요한 것이고, 복구하는 해당 과정도 신중하게 선택하고 수행해야 한다!

그래도 되돌리는 법을 알았으니, 이전 버전에 대한 걱정은 조금 덜어도 좋을 것 같다.

 

728x90
반응형