registrar errores remotos usando spawn y esperar en script bash

Actualmente estoy trabajando en el script de esperar para enviar los datos desde el repository git a otro server. Pero quiero registrar el post de error que proviene del repository remoto.

aquí está la siguiente línea de código para el engendro.

spawn git push --force user@ip:/var/git/repo.git master 2> >(tee /home/user/error.log >&2) 

pero este código anterior no funciona y arroja un error:

 error: src refspec 2> does not match any. error: src refspec >(tee does not match any. error: src refspec /home/user/error.log does not match any. error: src refspec >&2) does not match any. 

También he intentado:

 $(spawn git push --force user@ip:/var/git/repo.git) > /home/user/output.log 

pero todavía no está funcionando.

Mi motivo principal aquí es registrar el post de error que recibo del repository remoto y mostrarlos también en la pantalla de salida.

Gracias.

EDIT 1: cuando se utiliza la respuesta "glenn jackman", registra todo, el post de eco y el post de error, pero solo el post de error se registrará.

 remote: changing directory to the one which is not available remote: hooks/post-receive: line 5: cd: someunknown: No such file or directory 

expect no entiende la syntax de sustitución de processs bash. Si lo quieres específicamente, necesitas generar bash para ejecutarlo:

 spawn bash -c {git push --force user@ip:/var/git/repo.git master 2> >(tee /home/user/error.log >&2)} 

Tenga en count el uso de llaves: las llaves de esperar actúan como las comillas simples de la caparazón: agrupe algunas palabras como una sola string sin interpolación de variables o commands.