Cómo verificar si un autor de commit de git es válido

En un repository en el que no puedo establecer las configuraciones user.name y user.email , necesito establecer un script para una confirmación con:

 commit -a --message "message" --author="author" 

El post y el autor están parametrizados.

Cuando me comprometo con un autor equivocado (no está presente en rev-list y está mal formateado para git) obtengo:

fatal: –author 'bad-formatted-author' no es 'Name' y no coincide con ningún autor existente

¿Hay alguna manera de verificar contra git si el autor es válido antes de la confirmación?

Utilice git commit -a --message "message" --author="author" --dry-run .

El --dry-run adicional --dry-run hará que el git commit no git commit realidad nada, sino que salga de otro modo si la --author opción del --author dada no es válida.

Sin embargo, tenga en count que puede haber otras razones por las que el estado de salida no sea cero, como que la confirmación sea vacía (es decir, que no haya ningún cambio).

Esto realmente está justo en la documentation :

--author= author

Anular el autor de commit. Especifique un autor explícito utilizando el formatting estándar AU Thor <author@example.com> . De lo contrario author se supone que el author es un patrón y se utiliza para search un compromiso existente de ese autor (es decir, rev-list --all -i --author= author ); el autor del compromiso se copy luego de la primera confirmación encontrada.

Incluso copyste esto en tu pregunta:

no está presente en la list de reválidas y está mal formateado para git

lo que significa que esta es su respuesta: compruebe el formatting para ver si coincide con el estilo Name <email> y, de lo contrario, ejecute git rev-list con los parameters que se muestran para ver si hay al less un compromiso coincidente.

En general, sin embargo, probablemente sea más simple intentar la confirmación y detectar el error.