Registro remoto de Git y solicitud de cambios

3 minutos de lectura

avatar de usuario
encantador

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?

  • No creo que puedas hacer esto sin clonar el repositorio.

    – cdhowie

    26 de noviembre de 2010 a las 21:22

avatar de usuario
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

  • 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

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).

avatar de usuario
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.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad