Lee files repo desnudos sobre la marcha

¿Hay alguna forma de leer los files de un repository simple? Por ejemplo, quiero analizar cada file y extraer algunas características de un repository, pero sin consultar el repository completo localmente.

PD: idealmente, quiero usar C # para esto

Gracias

No está del todo claro lo que quieres hacer, pero hay dos methods principales para extraer datos directamente de un repository simple:

  • Use git cat-file -p para extraer los datos del object.

    Este método es simple y fácil, pero tiene un inconveniente no obvio: no se produce el filtrado de estilo de .gitattributes . (El inconveniente obvio es que debe nombrar objects sin poder searchlos en el sistema de files utilizando las rutinas del sistema operativo. Sin embargo, git cat-file usa todas las reglas git rev-parse usuales, para que pueda simplemente git cat-file -p branch:path/to/file si conoce el nombre de la sucursal y la ruta del file).

  • Proporcione un tree de trabajo.

    Por ejemplo, git --work-tree=/some/where checkout branch funciona incluso con un repository --work-tree : el --work-tree proporciona el nivel superior del tree de trabajo. El (o los dos) uno o dos de los inconvenientes no obvios aquí (o dos) depende de que una comprobación específica modifique el índice del repository desnudo y HEAD (bifurcación / confirmación actual). El índice en sí mismo puede o no estar en uso de cualquier otra manera; si no, esto no es un problema, y ​​si es así, es posible que desee utilizar un índice alternativo (a través de la variable de entorno GIT_INDEX_FILE ). El HEAD se usa implícitamente mediante nuevas operaciones de git clone (si este clon desnudo en particular se usa como fuente para otros clones).