-
[Github] 브랜치 복구하기Github 사용법 2021. 9. 8. 12:16
브랜치를 삭제했을 때 여러가지 케이스가 있을텐데 만약 로컬에서만 삭제한 브랜치라면 Remote에서 가져오면 됩니다.
둘째로 Remote에서도 삭제한 브랜치일 때, 같이 작업하던 다른 사람의 로컬에 남아있는 브랜치라면 그 사람이 다시 Remote에 브랜치를 올려서 받아올 수 있습니다. 허나 내 마지막 커밋이 상대의 로컬에 남아있다는 가정하에 완벽히 복구할 수 있습니다.
마지막으로 내 로컬에서만 작업하던 브랜치를 Remote에서도 삭제했을 때, 브랜치 복구하는 방법에 대해 소개하겠습니다.
일단 Git에는 내가 행동한 모든 작업 기록이 남습니다. commit이나 브랜치 이동 기록이 남죠. 이 기록들은 git reflog를 통해 확인할 수 있습니다.
1. git reflog를 통해 삭제한 브랜치의 마지막 checkout 기록을 찾아 HEAD@{숫자}를 기억한다.
git reflog
만약 삭제한 브랜치에 있다가 해당 브랜치를 삭제한 후 아무 작업도 안 했다면 HEAD@{1}번에 checkout 기록이 있을거지만 그렇지 않다면 기록을 찾기 어려울 수 있습니다.
grep을 통해 "to 브랜치명" 키워드를 찾습니다. 그 중에 가장 최신 기록. HEAD@ 뒤의 숫자가 가장 낮은 기록의 HEAD 번호를 기억해주세요.
git reflog | grep "to 브랜치명"
2. 돌아가고 싶은 HEAD 번호로 이동한다.
아까 기억했던 HEAD 뒤의 숫자로 checkout한다. 아래 코드를 입력하면 새로운 브랜치가 생겨난다.
git checkout -b 브랜치명 HEAD@{숫자}
만약 HEAD 숫자가 잘못됐거나 브랜치명이 잘못됐다면 브랜치가 생겨났지만 내가 작업했던 코드가 돌아오지 않았을 수 있다.
커밋이 돌아왔는지 확인해보고 안 돌아왔다면 새로 생겨난 브랜치를 삭제한 후에 git reflog를 통해 HEAD 숫자를 다시 찾아서 위 코드를 입력한면 된다.
정상적으로 브랜치가 생성됐다면 Remote에 올려준다. 끝!
반응형'Github 사용법' 카테고리의 다른 글
[Github] stash 복구 (0) 2022.12.01 [Github] Homebrew gh를 이용해서 로컬에서 git 접근하기 for M1, M2 맥북 (0) 2022.12.01 [Github / MAC] 원격 브랜치 삭제하기 (deleter remote branch) (0) 2021.04.22 [Github / MAC] 잘못된 브랜치에 커밋을 했을 때 :commit branch 옮기기 (0) 2021.04.16 [Github] 프로필(overview) README.md 꾸미기 [2] (0) 2020.10.06