I was wondering if the strategy I'm using for tagging and hotfixing tags (which then I use for deploying rails applications) with git is appropriate.
For tagging I just tag a commit of the master trunk.
If it happens I have to hotfix the tag, I'm checking out the tag (e.g. 1.0), fix the issue, commit it and re-tag it (e.g. 1.0.1). Now, if I have to do another fix on the tag, I repeat the procedure, using as first checkout the tag of the first hotfix (e.g. 1.0.1).
Now, I noted two things: 1. when I checkout the 1.0.1, I get a warning saying I'm not in branch - I assume that it's ok, but is it appropriate as strategy? 2. when I try to deploy the 1.0.2, I receive an error from capistrano (tool used for deploying rails apps) during the code update from the remote repository, saying that it can't find the object [commit of 1.0.2]. I can correct this problem checking out the master and merging 1.0.2.
Of course, I'm always pushing the tags to the repository.
Is there anything wrong/inefficient/inappropriate, or this is an appropriates strategy? I'm completely new to git and I couldn't find around a great deal of information about the deployment strategies generally used.