Este método sólo le dará los empujes de éxito, pero todavía puede ser útil para usted:
Cuando se presiona a una sucursal en un mando a distancia que se corresponde con una de sus ramas de seguimiento a distancia, y que empuje es exitoso, la rama de rastreo remoto se actualizará. En el caso predeterminado en el que ha clonado desde un repositorio, esto generalmente significa que los intentos exitosos a master
en el control remoto origin
actualizarán la rama de seguimiento remoto origin/master
. Los cambios en origin/master
se registran en el reflog, para que pueda encontrar los empujes con éxito:
git reflog show origin/master
Por ejemplo, en uno de mis repositorios, verá:
17f2303 refs/remotes/origin/[email protected]{0}: fetch origin: fast-forward
dd7e0ac refs/remotes/origin/[email protected]{1}: fetch origin: fast-forward
1788ffe refs/remotes/origin/[email protected]{2}: fetch origin: fast-forward
9763bbc refs/remotes/origin/[email protected]{3}: fetch origin: fast-forward
058d0d6 refs/remotes/origin/[email protected]{4}: fetch origin: fast-forward
921f0f1 refs/remotes/origin/[email protected]{5}: fetch origin: fast-forward
8483afd refs/remotes/origin/[email protected]{6}: update by push
18d527f refs/remotes/origin/[email protected]{7}: update by push
1a0fc4a refs/remotes/origin/[email protected]{8}: fetch origin: fast-forward
b19afc6 refs/remotes/origin/[email protected]{9}: fetch origin: fast-forward
9253285 refs/remotes/origin/[email protected]{10}: fetch origin: fast-forward
dfa664f refs/remotes/origin/[email protected]{11}: fetch origin: fast-forward
30ee7c0 refs/remotes/origin/[email protected]{12}: update by push
ad11e76 refs/remotes/origin/[email protected]{13}: fetch origin: fast-forward
c337975 refs/remotes/origin/[email protected]{14}: update by push
1ff03bd refs/remotes/origin/[email protected]{15}: update by push
7fb1c8d refs/remotes/origin/[email protected]{16}: fetch origin: fast-forward
452c8fa refs/remotes/origin/[email protected]{17}: fetch origin: fast-forward
6c79a16 refs/remotes/origin/[email protected]{18}: update by push
11d9c4a refs/remotes/origin/[email protected]{19}: fetch origin: fast-forward
Por ejemplo, A partir de esto, puedo decir que mi actualización más reciente actualizó origin/master
de 18d527f
a 8483afd
.
Si necesita confiar en esto, deberá evitar que el reflog caduque después de la hora predeterminada (90 días IIRC).
¡Perfecto! Gracias. FWIW, mi reflog muestra las entradas de los últimos 9 meses, y no he hecho nada para afectar su comportamiento desde la primera vez que lo instalé. – Clayton
@Clayton: Eso probablemente solo significa que aún no has tenido el disparador 'gc --auto'; caducará los reajustes anteriores a los 90 días predeterminados. Simplemente establece 'gc.reflogExpire' en' never' (o algo más grande) si quieres que las cosas permanezcan así. – Cascabel
Para estudiantes de git: para configurar el reflog para que no caduque para todos sus repos locales: 'git config --global gc.reflogExpire never' en la línea de comando. –