tutorial remota rama español cambiar git github

remota - git push



¿Cómo puedo generar un diff para un solo archivo entre dos ramas en github (4)

Aquí está mi solución cuando se aplica el siguiente problema.

¡Esta comparación es grande! Solo mostramos los 250 commits más recientes

Copie la vista sin formato del archivo que desea comparar con https://gist.github.com/ . Use los dos puntos de confirmación específicos que desea comparar. Comience con la confirmación más antigua.

https://gist.github.com/ tiene una bonita vista de diferencias lado a lado cuando hace clic en ''Revisiones''.

Necesito generar un diff para un solo archivo que muestre las diferencias entre dos versiones, que en realidad son etiquetas en github. Entonces quiero enviar esta diferencia a alguien por correo electrónico para que una URL github para el diff sea ideal. La vista de comparación github me permitirá hacer esto para todos los archivos modificados, pero eso no es bueno ya que hay miles de archivos en mi repositorio.

Puedo hacer esto en la línea de comandos de la siguiente manera, pero esto no ayuda, ya que necesito enviar el diff a alguien por correo electrónico:

git diff tag1 tag2 -- path/to/file

Encontré la versión de la línea de comandos discutida aquí: ¿cómo puedo ver las diferencias en un archivo designado entre una sucursal local y una sucursal remota?


GitHub solo expone la forma de mostrar diff entre dos commits.

Siempre que esas etiquetas apunten a confirmaciones, el formato de URL sería algo así como

https://github.com/{user}/{repository}/compare/{from-tag}...{until-tag}

Como ejemplo, https://github.com/libgit2/libgit2sharp/compare/v0.9.0...v0.9.5 muestra la diferencia entre dos versiones del proyecto LibGit2Sharp. Esta diferencia incluye todos los archivos modificados.

Si desea recuperar una URL que se dirige a un archivo específico:

  • Cambia a la pestaña Archivos modificados
  • Haga clic en el botón Mostrar estadísticas diferidas (Esto mostrará la lista de archivos modificados como enlaces)
  • Copie en el portapapeles el enlace del archivo específico que está buscando ... ¡y Tada! Ya terminaste

Por ejemplo, dada la diferencia anterior, el enlace https://github.com/libgit2/libgit2sharp/compare/v0.9.0...v0.9.5#diff-11 apuntará a los cambios LazyFixtures.cs que ocurrieron entre la versión v0 .9.0 y v0.9.5.

Actualizar

Después de su comentario que indica que su diferencia es demasiado grande para ser procesada a través de la interfaz web, ¿qué hay de revertir a una buena herramienta de línea de comandos? Puede redirigir la salida del diff a un archivo y luego enviar el archivo como un archivo adjunto de correo electrónico.

$ git diff v0.9.0 v0.9.5 -- LibGit2Sharp.Tests/LazyFixture.cs > /tmp/lazyfixture.diff


La respuesta es para las personas que solo quieren ver (no descargar) la historia / reválida de los cambios de código de un archivo en la página web de GITHUB para la verificación previa.

Vaya a ese archivo en github, luego seleccione HISTORIA . Esto abrirá la página con una lista de enlaces de verificación de comentarios como se muestra a continuación.

Al hacer clic en él, se mostrará el código cambia. Después de hacer clic en el historial; puede hacer clic en paquetes para ver el nivel de paquete de todos los archivos checkins.

En Eclipse puedes comparar el historial usando el plugin EGit y "Clic derecho -> Comparar con" en el archivo. ¿Cómo puedo comparar dos revisiones en git en Eclipse?


Usé la respuesta de nulltoken para armar un script de conveniencia simple para sacar un diff entre dos commits en GitHub desde la línea de comando.

Puede encontrar el guión completo en la esencia , pero aquí están los buenos bits:

# Parse the following patterns for repo urls to get the github repo url # https://github.com/owner/repo-name.git # [email protected]:owner/repo-name.git BASE_URL="https://github.com/""$(git config --get remote.origin.url | sed ''s/.*github/.com[/:]/(.*/).git//1/'')""/compare" if [[ "$#" -eq 1 ]]; then if [[ "$1" =~ .*/./..* ]]; then # Handle "git hubdiff fromcommit..tocommit" open "${BASE_URL}/$(git rev-parse "${1//./.*/}")...$(git rev-parse ${1/*/././})" else # Handle "git hubdiff fromcommit" open "${BASE_URL}/$(git rev-parse "$1")...$(git rev-parse HEAD)" fi elif [[ "$#" -eq 2 ]]; then # Handle "git hubdiff fromcommit tocommit" open "${BASE_URL}/$(git rev-parse "$1")...$(git rev-parse "$2")" fi

Acepta como argumentos branches, commits y cualquier otra cosa que pueda ser resuelta por git rev-parse . Utilicé open , que solo funciona en macOS para abrir páginas web, por lo que si estás en un entorno diferente querrás modificarlo.

Al igual que con la respuesta de nulltoken, para apuntar a un solo archivo en el diff, tendrá que hacer clic en el título del archivo para que aparezca la cadena de anclaje en la barra de la url, que luego puede copiar.