git-lost-found − Recover lost refs that luckily have not yet been pruned |
git lost−found |
NOTE: this command is deprecated. Use git-fsck(1) with the option −−lost−found instead. Finds dangling commits and tags from the object database, and creates refs to them in the .git/lost−found/ directory. Commits and tags that dereference to commits are stored in .git/lost−found/commit, and other objects are stored in .git/lost−found/other. |
Prints to standard output the object names and one−line descriptions of any commits or tags found. |
Suppose you run git tag −f and mistype the tag to overwrite. The ref to your tag is overwritten, but until you run git prune, the tag itself is still there. |
$ git lost−found [1ef2b196d909eed523d4f3c9bf54b78cdd6843c6] GIT 0.99.9c ... |
Also you can use gitk to browse how any tags found relate to each other. |
$ gitk $(cd .git/lost−found/commit && echo ??*) |
After making sure you know which the object is the tag you are looking for, you can reconnect it to your regular .git/refs hierarchy. |
$ git cat−file −t 1ef2b196 tag $ git cat−file tag 1ef2b196 object fa41bbce8e38c67a218415de6cfa510c7e50032a type commit tag v0.99.9c tagger Junio C Hamano <junkio@cox.net> 1131059594 −0800 GIT 0.99.9c This contains the following changes from the "master" branch, since ... $ git update−ref refs/tags/not−lost−anymore 1ef2b196 $ git rev−parse not−lost−anymore 1ef2b196d909eed523d4f3c9bf54b78cdd6843c6 |
Written by Junio C Hamano <gitster@pobox.com [1] > |
Documentation by Junio C Hamano and the git−list <git@vger.kernel.org [2] >. |
Part of the git(1) suite |
1. |
gitster@pobox.com |
mailto:gitster@pobox.com |
2. |
git@vger.kernel.org |
mailto:git@vger.kernel.org |