Você desenvolveu seu aplicativo concluiu a versão v1.0.

Após todos os commits no git, você marcou este ultimo commit com a tag v1.0 utilizando o comando:

git tag -a v1.0 -m "Versão v1.0"

E você continuou desenvolvendo novas funcionalidades no master enquanto seu cliente utiliza a versão v1.0.

Após alguns dias o seu cliente entra em contato dizendo que há um bug na sua aplicação e que precisa ser corrigido.

Mas você não quer ainda lançar a versão v2.0, em função de todas as funcionalidades desejadas para esta versão ainda não estarem concluidas.

Como você volta na versão v1.0 e faz a correção?

Primeiro você deve voltar a versão desejada, no caso a versão v1.0 com o seguinte comando:

git checkout v1.0

Só lembre de executar este comando em um diretorio que não contenha modificações a serem commitadas ainda, caso houver necessidade, utilize o stash para guardar as alterações que estavam em andamento para posteriormente voltar a versão v1.0

Feito isto, agora você está dentro da versão v1.0.

Crie um novo branch a partir da versão v1.0 com o comando:

git checkout -b bugfix v1.0

Ficando assim agora em um novo branch “bugfix” gerado a partir da versão v1.0.

Faça todas as alterações necessárias para correção do respectivo bug.

Após isto é só adicionar as alterações referente as correções e efetuar o commit com os comandos:

git add .

git commit -m "Finish bugfix"

Agora vamos gerar a versão v1.1 com as devidas correções utilizando o seguinte comando:

git tag -a v1.1 "Versão v1.1, bugfix"

Agora só falta fazer o merge para a linha principal de desenvolvimento, no caso o master, para estas correções já sairem nas próximas versões.

Vamos primeiro alterar para a branch master.

git checkout master

Vamos realizar o merge das correções da v1.1 com o master.

git merge v1.1

Caso ocorra conflitos, é só resolve-los e continuar o desenvolvimento na branch master.