¿Cómo puedo ver si la historia de Git fue reescrita?

Estoy rastreando un problema donde parecen haberse perdido algunas confirmaciones de una sucursal. No puedo explicar qué pasó, pero necesito ver si hay problemas de capacitación / process que deben plantearse con los desarrolladores.

Situación: se creó una twig de características y se realizaron algunas confirmaciones (un par de cambios en un file de JavaScript). Llegó el momento de fusionar la twig de características en maestra pero se descubrió que faltaba una característica. El desarrollador original me dio el hash de confirmación y puedo verlo en github y dice estar en la twig de características, pero cuando miro el historial del file javascript en la twig, estas dos confirmaciones simplemente no están ahí.

¿Alguien reescribió el historial de la sucursal y eliminó los commits?

Si tienes los hashes, siempre puedes

git branch --contains 122345abcd 

donde 12345abcd es el hash que te estás perdiendo.

Del mismo modo, puedes

 git rev-list --all | grep 12345abcd 

Podrías usar

 git log --cherry-mark --left-right --graph --oneline 12345abcd^...feature_branch 

para identificar las confirmaciones reescritas (recogidas en cereza / rebasadas) entre las twigs. Ver también https://www.kernel.org/pub/software/scm/git/docs/git-log.html

 --cherry-mark Like --cherry-pick (see below) but mark equivalent commits with = rather than omitting them, and inequivalent ones with +. --cherry-pick Omit any commit that introduces the same change as another commit on the "other side" when the set of commits are limited with symmetric difference. For example, if you have two branches, A and B, a usual way to list all commits on only one side of them is with --left-right (see the example below in the description of the --left-right option). It however shows the commits that were cherry-picked from the other branch (for example, "3rd on b" may be cherry-picked from branch A). With this option, such pairs of commits are excluded from the output.