¿Qué significa accesible / inalcanzable en git?

Un poco confundido ..

En el manual de la comunidad git , dice

El command log git puede mostrar lists de commits. Por sí solo, muestra todas las confirmaciones accesibles desde la confirmación principal; pero también puedes hacer requestes más específicas

$ git log v2.5.. # commits since (not reachable from) v2.5 

Pensé que git log por sí solo solo mostraba las confirmaciones hechas a la twig actual, y las confirmaciones son secuenciales, entonces, ¿cómo se puede hacer una confirmación desde otra, pero inalcanzable?

Creo que estoy entendiendo mal lo que hace el log git o lo que significa inalcanzable o ambos … ¡muy agradecido por cualquier ayuda!

en Git, cada compromiso que hagas (excepto el primero) hará que un padre se comprometa. Se sigue que cualquier compromiso dado (excepto el primero) es un hijo de uno (o posiblemente más de un) otro compromiso. También puede tener varias twigs de desarrollo en Git, que comienzan o se desvían en un compromiso ancestral particular. Nada en Git dicta que las confirmaciones deben ocurrir en un order cronológico o lineal, y por lo tanto, la herramienta de git log debe ser capaz de manejar varias forms de consultar el historial.

Por ejemplo, supongamos que desarrollo mi aplicación y hago commits en order alfabético:

 ---A---B---E---G \ \ C---DF 

En este ejemplo, debo haber hecho una nueva twig en commit A y E.

Si git log <D> ejecutar git log <D> (donde <D> es el SHA de la confirmación), entonces el historial de logging se vería así:

 D---C---A--- 

A partir de ese compromiso, solo los padres y sus ancestros se comprometen pueden ser 'vistos'. Los compromisos B, E, F y G son técnicamente 'inalcanzables' del compromiso D, ya que no comparten ningún compromiso principal conectado común.

"Y es alcanzable desde X" significa que el object Y es accesible desde el DAG . Depende de qué es Y, esto puede significa:

  • Y es un compromiso : Y es un padre / antepasado de X.
  • Y es un directory / carpeta / blob : Y es una parte de (por decir) una confirmación en el tree padre / ancestro de X.

Para algunos documentos (por ejemplo, git-fsck), solo dice "Y es alcanzable". Esto significa que se puede alcanzar Y desde alguna label / twig (es decir, Y no se puede recolectar basura)