Me gustaría ver qué etiquetas tengo localmente que no están disponibles en un control remoto en particular. ¿Cómo puedo hacer esto? Sé que puedo hacer git push --tags
para impulsarlos a todos. Sin embargo, si hay algunas etiquetas que no quiero presionar, ¿cómo puedo asegurarme de que no me he perdido algunas?Cómo enumerar las etiquetas de Git no eliminadas
17
A
Respuesta
22
Puede utilizar el siguiente para ver las etiquetas que existen a nivel local, pero no en las especificadas remoto:
git show-ref --tags | grep -v -F "$(git ls-remote --tags <remote name> | grep -v '\^{}' | cut -f 2)"
en cuenta que git ls-remote
muestra tanto la etiqueta anotado y el envío de datos al que apunta con ^{}
, por lo que necesitamos para eliminar los duplicados.
Una alternativa es el uso de las banderas --dry-run
/-n
a git push
:
git push --tags --dry-run
Esto le mostrará qué cambios habría sido empujado, pero no se vuelven estos cambios.
2
Para que conste, estoy usando una variante de esto con el comando 'comunicador':
comm -23 <(git show-ref --tags | cut -d ' ' -f 2) <(git ls-remote --tags origin | cut -f 2)
lo estoy usando como un alias de git en .gitconfig, la fiesta adecuada citar así:
[alias]
unpushed-tags = "!bash -c \"comm -23 <(git show-ref --tags | cut -d ' ' -f 2) <(git ls-remote --tags origin | cut -f 2)\""
Cuestiones relacionadas
- 1. ¿Cómo enumerar todas las etiquetas de Git?
- 2. Cómo enumerar todas las etiquetas que apuntan a una confirmación específica en git
- 3. cómo usar las etiquetas en GIT
- 4. Cómo enumerar las confirmaciones locales diferencia en git
- 5. ¿Las etiquetas de git también se presionan?
- 6. Git diff entre las dos etiquetas dadas
- 7. ¿Cómo reacciono a las nuevas etiquetas en git hooks?
- 8. ¿Cómo sobrescribir las etiquetas locales con git fetch?
- 9. Etiquetas del subárbol de Git
- 10. Las tablas lógicas insertadas y eliminadas no se pueden actualizar
- 11. ASP.NET Páginas no eliminadas de la memoria
- 12. Cómo enumerar todas las propiedades de clase
- 13. ¿Cómo enumerar solo ramas activas/recientemente modificadas en git?
- 14. Cómo enumerar las propiedades del bean
- 15. Cómo evitar las etiquetas de las entradas
- 16. ¿Cómo enumerar las filas devueltas en SQL?
- 17. Cómo enumerar las carpetas vacías en Linux
- 18. Lista de nombres, fechas y mensajes de etiquetas git
- 19. Instalar etiquetas/ramas no editables del repositorio Git con pip
- 20. etiquetas html en las etiquetas de opción
- 21. Hudson + git FATAL: No se pueden aplicar etiquetas
- 22. Las carpetas eliminadas SVN de Tortoise siguen volviendo
- 23. Acceso a las filas eliminadas de una DataTable
- 24. ¿Cómo se encuentran las etiquetas que no coinciden en HTML?
- 25. Cómo eliminar las etiquetas HTML, no el contenido en Vim
- 26. Cómo leer las etiquetas de archivos MP3
- 27. Git: distinguir entre etiquetas locales y remotas
- 28. Empuje las escrituras y las etiquetas de git al mismo tiempo
- 29. ¿Cómo enumerar todas las interfaces de red disponibles?
- 30. ¿Cómo dejo que diga a Git que me advierta sobre ramas remotas posiblemente eliminadas
Dado que está utilizando la salida de 'git ls-remote' para filtrar desde' show-ref', no hay mucho daño al dejar las líneas '^ {}'. Eso nos deja un poco más simple: 'git show-ref --tags | grep -v -F "$ (git ls-remote --etiquetas origin | cut -f 2)" ' – phinze
Este es exactamente el mismo comando, excepto con' 'reemplazado por' origin'. Use esto para copiar/pegar: 'git show-ref --tags | grep -v -F "$ (git ls-remote --etiquetas origin | grep -v '\^{}' | cut -f 2)" ' –
funroll