Will git prune a commit that is branchless but is tagged?
From what I understand, git will occasionally prune commits that are not reachable by any branches. However, does it still delete those commits, even if they have tags?
I was thinking of making some one off commits and tagging them, but only ever single commits, so no need for them to have branches attached.
2 Solutions collect form web for “Will git prune a commit that is branchless but is tagged?”
No, it will not delete any commits which are referenced by branches, tags, the index and so on or any parent of those commits. See “Notes” section of the help page for
git gc tries very hard to be safe about the garbage it collects. In particular, it will keep not only objects referenced by your current set of branches and tags, but also objects referenced by the index, remote-tracking branches, refs saved by git filter-branch in refs/original/, or reflogs (which may reference commits in branches that were later amended or rewound).
If you are expecting some objects to be collected and they aren’t, check all of those locations and decide whether it makes sense in your case to remove those references.
No. Any commit that is reachable from any ref (branches, tags, even the stash), or transitively reachable (i.e. all their parents), are safe from being garbage collected for as long as those pointers to the commits exist.
If you can reach your commit through a named reference, regardless of its type, you can be sure that it and its full history are available and will stay in the repository.