You can list the existing tags in a repository and checking a particular tag like you would check out a branch.Geoff the Medio wrote:You propose to delete the release branch, but then have a tag or link to a particular commit for a release. But if the release commit is on the release branch, which was deleted, how can you link to or refer to it, since the release commit (at least for v0.4.4) is not merged back to trunk, so only exists on the (deleted) branch?
In git there are the so called refs. Refs are symbolical names, which point to a git object. Depending on the kind of ref they point to different kind of git object.
Branches point to a commit. Git knows that you can manipulate branches by committing to a branch.
Tags point to also to a commit. A tag however is not intended to manipulated, it should just point to a commit in time.
Then we have the HEAD ref, this points to the commit, which is currently placed in the working directory. Most of the time this the checked out branch.
You also have remotes, which are references pointing to a branch / tag in a remote repository. Those are considered read only.
Every commit, that is reachable by a ref, will not be deleted from git. So when you have a branch and a tag pointing to a commit and delete the branch the commit and it's ancestors are still reachable by the tag and will not be deleted. If you delete the tag too however this history will become unreachable and will be deleted by the next garbage collection run by git.
Well, pretty much this. ;)Vezzra wrote:AFAIK deleting a branch in git just deletes the "branch marker" pointing to the latest commit of the branch. This doesn't change anything about the commit history. The tag won't be affected by deleting the branch, and still point to the same commit as before.