Necesito recibir los datos sobre las revisiones, los cambios de archivo y la cantidad de líneas de código cambiadas sin clonar el repositorio, lo único que tengo es una URL de repositorio. El único comando que encontré para ver cambios remotos es git ls control remoto, pero su salida es demasiado pobre. ¿Cómo puedo hacer eso?
Registro remoto de Git y solicitud de cambios
encantador
chris johnsen
No hay forma de hacer lo que pediste usando solo los protocolos de Git.
Dependiendo de cómo esté alojado el repositorio, es posible que pueda obtener parte de la información a través de un interfaz web. gitweb se distribuye con Git y los grandes servicios de alojamiento suelen tener sus propias interfaces web.
- ejemplo de git web: Confirmación de visualización de git.git etiquetada 1.7.3.2
- enlaces principales
- “log” o “shortlog” muestra el historial que conduce a la confirmación
- “commitdiff” para acceder a las diferencias contra los padres
- fusionar/nombre de objeto abreviado padre (cadena hexadecimal) se mueve a ese padre
- enlaces por padre
- El enlace “diff” muestra la diferencia contra ese padre
- El enlace “confirmar” se mueve a ese padre
- El enlace “árbol” muestra los archivos capturados en la confirmación
- enlaces por archivo
- “diff” (“diffN” para fusiones) muestra la diferencia de solo ese archivo
- “blob” muestra el contenido del archivo
- “historial” muestra las confirmaciones que conducen a la confirmación actual que modifica este archivo
- enlaces principales
- Ejemplo de GitHub: Confirmación de visualización de git.git etiquetada 1.7.3.2
- La pestaña “Commits” muestra el historial
- El nombre de objeto abreviado “commit”/”parent” (cadena hexadecimal) lo lleva a la confirmación; muestra
- los archivos que cambiaron para ese compromiso
- los cuadrados verde y rojo a la derecha muestran el número de líneas añadidas/eliminadas en cada archivo
- las diferencias para el compromiso
- “Ver archivo” muestra el archivo completo tal como se capturó en esa confirmación
- vista “sin procesar”/descarga el archivo
- “blame” muestra la confirmación más reciente para cambiar cada línea de este archivo
- “historial” muestra las confirmaciones que conducen a la confirmación actual que cambió este archivo
- “Ver archivo” muestra el archivo completo tal como se capturó en esa confirmación
- los archivos que cambiaron para ese compromiso
- El nombre de objeto abreviado “commit”/”parent” (cadena hexadecimal) lo lleva a la confirmación; muestra
- La pestaña “Commits” muestra el historial
Si va a realizar una investigación significativa en el historial, probablemente valdrá la pena clonar el repositorio (y es probable que sea el solamente manera si el servicio de alojamiento no tiene una interfaz web de algún tipo). Deberá utilizar algo de espacio en disco, pero su investigación no se limitará a lo que proporciona la interfaz web y será mucho más rápida.
Otra posibilidad es archivo git; es un servidor opcional, por lo que es posible que no esté habilitado para el servidor que aloja su repositorio. Le permite descargar archivos (por ejemplo, archivos tar o zip) de árboles individuales. Técnicamente, podría extraer dichos archivos y diferenciarlos manualmente para obtener la información que busca, pero probablemente sería más engorroso y menos eficiente que simplemente clonar el repositorio y usar las herramientas normales (es decir, git log
con --stat
o --numstat
con o sin -m
/-c
/--cc
).
daniel egan
Si la URL de su repositorio es para una conexión de tipo ssh, puede emitir un comando de registro remoto a través de ssh, por ejemplo
Si pudieras haber clonado usando el comando:
git clone [email protected]:/path/to/repository.git
Entonces debería poder emitir un comando de registro usando:
ssh [email protected] git --git-dir /path/to/repository.git log
-
Eso solo funciona si tienes un caparazón real. La mayoría de los sistemas usan git-shell, que solo permite recibir paquete, cargar paquete, cargar archivo, servidor cvs y lo que esté explícitamente en la lista blanca.
– AI0867
27 de marzo de 2013 a las 13:26
Si tiene acceso al servidor, puede ejecutar git log localmente en el servidor, analizar los datos y devolver el resultado agregado.
No creo que puedas hacer esto sin clonar el repositorio.
– cdhowie
26 de noviembre de 2010 a las 21:22