Quería hacer esta pregunta para ver si lo estoy haciendo bien. La siguiente secuencia de comandos funciona a excepción de la comprobación para ver si el commit ha sido empujado a un acuerdo de recompra a distancia que no puedo encontrar el comando adecuado para:función Bash/Shell Script para verificar que la etiqueta Git o Commit existe y se ha enviado al repositorio remoto
#!/bin/bash
set -e # fail on first error
verify_git_ref() {
log "Verifying git tag or commit: \"$1\" ...."
if git show-ref --tags --quiet --verify -- "refs/tags/$1"
then
log_success "Git tag \"$1\" verified...."
GIT_TAG_OR_REF=$1
return 0
elif git rev-list $1>/dev/null 2>&1
then
log_success "Git commit \"$1\" verified...."
GIT_TAG_OR_REF=$1
return 0
else
log_error "\"$1\" is not a valid tag or commit, you must use a valid tag or commit in order for this script to continue"
return 1
fi
}
relacionados: List Git commits not pushed to the origin yet
El problema con esto es que en realidad no inspeccionar el mando a distancia - sólo inspecciona lo que sabe de los (las ramas remotas, que se almacenan localmente) remotos. Esto funcionará en la mayoría de los casos, ya que si presiona hacia el control remoto, sus sucursales remotas se actualizarán. Pero si el control remoto se aleja de ti, no tendrás suerte, a menos que vengas primero. (Tampoco necesitas el git rev-parse, no creo.) – Cascabel
Hago un jalón antes de ejecutar este comando, pero tienes razón y creo que tu respuesta está más en línea con una respuesta genérica a la pregunta que hice y marcaré la tuya como la respuesta real. – Freddie