¿Cómo ver si el repository local de git y el repository remoto son los mismos?

Tengo un repo de git local, y tengo un repo de git remoto. ¿Qué es un command simple para ver qué comprometer el repository remoto y qué comprometer el repository local, para que pueda ver si estoy actualizado?

Esto se automatizará en un progtwig, así que no quiero muchas cosas complicadas que deba analizar. Preferentemente, sería genial tener el mismo text tanto en la salida local como en la remota, y solo el compromiso cambiará entre los dos. ¿Algunas ideas?

Suponiendo que el origen remoto hace reference a su repository remoto y está interesado en el master sucursal, puede hacer:

 git fetch origin 

Y luego compare la salida de:

 git rev-parse master 

… y:

 git rev-parse origin/master 

Si los nombres de los objects que salen de esos dos commands son los mismos, entonces su master y el master en origin eran los mismos en el punto en que se ejecutó el git fetch origin .

Una solución programática

Si desea una solución programática, puede ver las confirmaciones almacenadas en cada encabezado y compararlas. Por ejemplo:

 remote=$( git ls-remote -h origin master | awk '{print $1}' ) local=$(git rev-parse HEAD) printf "Local : %s\nRemote: %s\n" $local $remote if [[ $local == $remote ]]; then echo "Commits match." else echo "Commits don't match." fi 

Muestra de salida

 Local : 9e1b4dc286acb442f7f604be7916db660b9d70cd Remote: 9e1b4dc286acb442f7f604be7916db660b9d70cd Commits match.