git - delete - "Las actualizaciones se rechazaron porque la etiqueta ya existe" al intentar insertar SourceTree
delete tag git (7)
Cuando intento empujar a través del árbol de origen, aparece el siguiente error:
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/master:refs/heads/master
Pushing to https://[email protected]/repo.git
To https://[email protected]/repo.git
= [up to date] master -> master
...
! [rejected] example_tag -> example_tag (already exists)
updating local tracking ref ''refs/remotes/origin/master''
error: failed to push some refs to ''https://[email protected]/repo.git''
hint: Updates were rejected because the tag already exists in the remote.
Completed with errors, see above
Por lo que sé, no hice ningún cambio en esta etiqueta. ¿Cómo puedo arreglar esto?
Desmarque
push all tags
en la parte inferior de la interfaz de usuario cuando confirme su empuje git
Sí, de hecho, extraiga las etiquetas antes de
push --tags
.
Resuelto mi problema
Si no ha realizado ningún cambio local en la etiqueta que desea conservar, puede
eliminar la etiqueta que fue rechazada porque
ya existe
(
example_tag
en este caso):
- Haga clic con el botón derecho en la etiqueta y elija eliminarla (asegúrese de desmarcar la casilla Eliminar etiqueta de todos los controles remotos ).
- Elija la opción Recuperar (no es necesario activar y almacenar todas las etiquetas localmente).
- Ahora debería tener esa etiqueta que acaba de eliminar, e intentar presionar ya no mostrará ese mensaje de error.
La razón por la que esto es común en SourceTree es porque la opción Insertar todas las etiquetas está activada de manera predeterminada. (Otra forma de ocultar este error es desmarcar esa opción).
También debería poder resolver esto en git bash (haga clic en el botón "Terminal" en la IU del árbol de origen). Tipo:
git pull --tags
git pull --tags
funciona muy bien, pero a veces puedes obtener un error incluso con este comando.
Mensaje de error de ejemplo:
! [rejected] example_tag -> example_tag (would clobber existing tag)
Esto se puede resolver con el comando:
git pull --tags -f
Fuente:
Resuelvo el problema en SourceTree de esta manera:
- Eliminar la etiqueta con la selección "Eliminar la etiqueta de todos los controles remotos"
- Recreando la etiqueta