Git - 삭제한 branch 혹은 commit를 복구하는 방법
- 프로그래밍/Git
- 2022. 2. 12.
이번에는 삭제한 branch나 commit를 복구하는 방법에 대해서 알아보겠습니다. 개발을 하다 보면 생각지 못한 실수로 branch나 commit를 삭제하는 경우가 있습니다. 이런 경우 생각보다 어렵지 않은 방법으로 삭제한 기록을 되살릴 수 있는 방법이 있는데요. 바로 git이 제공하는 reflog를 사용하는 것입니다.
reflog로 삭제한 기록을 복구해보자.
reflog는 참조(ref)에 대한 이력을 볼 수 있는 방법이에요. git에서 사용되는 command는 참조를 포함해서 기록되고 있기 때문에 reflog를 이용하면 git을 이용해 작업한 모든 이력을 확인할 수 있어요.
1. git reflog를 사용해서 시점을 찾자.
git reflog
// 추가 명령어를 이용하게 세밀하게 기록을 찾는 방법
git reflog | grep "do something"
git reflog 명령어로 원하는 기록을 찾지 못했다면 | grep 를 추가하고 키워드를 입력해서 확인하세요.
2-1. branch 복구
git checkout -b [branch] HEAD@[숫자]
ex) git checkout -b feat/add HEAD@4
git reflog를 이용해 되살려야 할 시점을 확인하션다면, git checkout -b [branch] HEAD@[숫자]를 사용해서 이전 기록을 복구하세요. 사실 local에서만 작업을 하고 삭제한 branch인 경우에는 branch 이름이 없을 가능성이 높아요. 이런 경우에는 commit을 기준으로 복구하시면 됩니다.
2-2. commit 복구
git reset --hard [commit id]
ex) git reset --hard e9f45f04
git의 모든 명령어는 이력이 남아 있기 때문에 branch를 기준으로 찾지 못해도 작업 내용으로 이력을 기준으로 복구하시면 됩니다. git reset --hard [commit id] 명령어를 이용해서 이전 작업을 복구하세요.
끝맺음
reflog 명령어는 git으로 작업한 이력들(rebase, merge 등등)을 살펴볼 때 사용하는 명령어입니다. 다만 의도치 않게 삭제한 branch나 commit을 되살릴 때도 활용할 수 있는 명령어이기도 합니다. 작업을 하다 원치 않게 작업을 삭제해서 다시 되돌려야 한다면 git reflog를 사용해보세요. 더 자세한 설명이 필요하시다면 Git 공식 - reflog 내용이나 Bitbucket - reflog 내용을 확인해보세요.
'프로그래밍 > Git' 카테고리의 다른 글
Git - 커밋 메시지 컨벤션 (1) | 2021.03.26 |
---|