IT/VCS

[git] 삭제된 태그 복원하기

심량 2021. 1. 29. 11:56

참고:git-scm.com/docs/git-fsck

 

Git - git-fsck Documentation

git-fsck tests SHA-1 and general object sanity, and it does full tracking of the resulting reachability and everything else. It prints out any corruption it finds (missing or bad objects), and if you use the --unreachable flag it will also print out object

git-scm.com

특정 태그를 삭제했는데 새로 태그를 달려고 보니 삭제한 태그의 내용을 또 수집하기가 귀찮고 힘이 들었습니다.

방법이 없나 하고 찾아봤더니 git fsck 와 git update-ref 명령으로 복구가 가능했고 그 기록을 남깁니다.

다음 명령으로 지워진 태그를 찾습니다.

git fsck --unreachable | grep tag

이 작업 직전에 여러 개의 태그를 지웠다면 나타난 해쉬값을 일일이 확인해봐야 합니다.

git show 해쉬값

한개라면 이제 바로 복원시켜봅시다.

git update-ref refs/tags/v0.4.0-debug 해쉬값

정상적으로 v0.4.0-debug 란 이름으로 태그가 복원되었습니다. git show v0.4.0-debug 란 명령으로 태그 커밋 메시지를 복사해서 새 태그 메시지로 붙여넣은 다음 쓸모를 다한 v0.4.0-debug 태그를 삭제했더니 깔끔해졌습니다!!

참고로 태그 삭제 명령은 다음과 같습니다.

git tag -d v0.4.0-debug