Rescate git pull

Uso git pull para asegurar que los repos locales estén actualizados. Sin embargo, la git pull veces falla. git pull falla si tiene cambios no confirmados. ¿Hay una opción git, o shell, para garantizar que si los commands fallan, el rest del script continúe?

El script actualmente es:

 if [ -d "some-repo" ]; then cd "some-repo" git pull #RESCUE???? else git clone git@github.com:USERNAME/some-repo.git cd "some-repo" fi 

No quiero registrarme en una sucursal, y realmente no me importa el trabajo que se realiza en las diferentes sucursales. Sé que es posible hacer un git reset --hard , o usar un command --force pero quiero asegurarme de que sea seguro, y ese código no se pierde.

Puedes escribir tu git pull dentro de una cláusula if :

 if git pull; then # Here, git has successfully pulled else # Here goes code for dealing with a failed pull fi 

Yo diría que puedes agregar estas 2 líneas antes de tirar del repository.

git add . git commit -am "sync repo"

Esto debería funcionar siempre y cuando no haya conflicto de fusión.

En tu caso, creo que git fetch es mejor. git pull fusiona siempre la twig de seguimiento remoto en tu HEAD actual. Podría ser una combinación de avance rápido, lo que puede hacer que la historia de la sucursal registrada sea un poco confusa si está queueborando con otros. Con Git Fetch solo tienes que actualizar la twig de seguimiento remoto, y luego puedes decidir cómo lidiar con las nuevas confirmaciones, fusionarlas todas o simplemente seleccionar algunas en tu twig principal.