2010-09-25 8 views
25

He bifurcado un proyecto en github y necesito tener un conjunto de cambios que hice desde que bifurqué, en formato diff.Cómo ver la diferencia de un proyecto github bifurcado

Si te preguntas, he bifurcado Apache httpd y estoy cambiando el código en el núcleo. Actualmente no estoy comprometiendo ningún cambio, ejecutando git diff, y uso su salida como un parche contra las fuentes de vainilla httpd en un proceso de creación de RPM. Está, por supuesto, mal, pero no sé cómo hacerlo correctamente. Todo lo que sé es que necesito una diferencia al final.

Respuesta

25
  • Agregue el repositorio original de GitHub (el que ha bifurcado) como uno remoto en su repositorio local.
    (git remote add mainRepo github_url)
  • git fetch mainRepo para obtener los últimos cambios de ese original "mainRepo".
  • git log HEAD..mainRepo/master le mostrará todos sus cambios entre los últimos en la rama principal de mainRepo y su sucursal actual.
    git diff HEAD..mainRepo/master Lo mostraría en formato diff.

En learn.GitHub:

git diff mainRepo/master...HEAD 

habría una lista de todos los cambios desde que han bifurcado de mainRepo:

Esto no va a comparar la última 'maestro' instantánea rama y el último 'dev 'instantánea' - comparará el ancestro común de ambos con 'dev'. Eso te dirá qué cambió desde el punto de ramificación.

+0

Muchas gracias, esto resuelve mi problema. Definitivamente necesito dedicar algo de tiempo para comprender más profundamente la filosofía de git. – GDR

+0

+1. Si puedo agregar dos notas: creo que las partes HEAD son innecesarias si usted está actualmente en la cabeza. Además, 'git difftool mainrepo/master' y' git difftool ..mainrepo/master' son útiles si desea ver los cambios en su difftool configurado. –

+0

Cómo ver los diffs de un proyecto bifurcado a través de TortoiseGit - http://stackoverflow.com/a/7297491/968003 –

2

Get padre/punto sha1 tenedor: git merge-base master HEAD Get diff: git diff <sha1>

O en un solo comando: git difftool $(git merge-base master HEAD)

Cuál es el mismo que el comando de azúcar: git diff master...HEAD

0

Ésta es una vieja pregunta, pero me acaba de encontrar una muy buen método para obtener un parche o archivo de diferencias directamente desde Github.

Cuando está en su tenedor, hay un "Comparar" el enlace. Usando eso, estás llegando a la vista de comparación.

Ejemplo

https://github.com/luisgoncalves/xades4j/compare/master...beat2:master 

Ahora se puede añadir manualmente o bien ".diff" o ".patch" al final de esta URL, y se obtiene el archivo directamente en su navegador.

Ejemplo

https://github.com/luisgoncalves/xades4j/compare/master...beat2:master.diff 

Fuente: https://github.com/blog/967-github-secrets

Cuestiones relacionadas