2012-05-21 16 views
25

No quería perder información después de git pull, así que hice un git fetch antes. ¿Dónde puedo leer las nuevas modificaciones después de git fetch? Fui al archivo FETCH_HEAD, pero no había nada más que un gran número.Dónde encontrar los cambios debido a `git fetch`

+1

¿Tiene acceso a 'gitk'? Si lo hace, ejecute 'gitk --all' para ver el estado actual de todas sus sucursales en su máquina local, incluso aquellas sucursales actualizadas por la búsqueda. – creemama

+0

intente 'git show object' donde object es el gran número hash ... –

+0

El comando gitk funciona pero no todo. (Por cierto, no precisé que el repositorio remoto no fue cambiado por mí). En la ventana de gitk, no hay ningún archivo que indique los datos obtenidos – Newben

Respuesta

41

git fetch origin de forma predeterminada recupera todo desde el control remoto denominado "origen" y actualiza (o crea) las denominadas "ramas de seguimiento remoto" para ese control remoto. Supongamos que para el nombre remoto "origen" que contiene ramas llamadas "maestro" y "característica", ejecutar git fetch remote dará como resultado que las ramas de seguimiento remoto denominadas "origen/maestro" y "origen/función" se actualicen (o se creen, si ellos no existen). Puede verlos en el resultado de git branch -a (observe "-a").

Ahora, la configuración habitual de Git es que (algunas de) sus sucursales locales siguen ciertas ramas remotas (generalmente con el mismo nombre). Es decir, su rama "maestra" local sigue "origen/maestro", etc.

Entonces, después de buscar, para ver qué "maestro" remoto ha comparado con su "maestro" local, le pide a Git que le muestre exactamente esto:

git log origin/master ^master 

que significa « todas las confirmaciones accesible desde "origen/master" que no incluyen comete accesible desde "maestro" » o, alternativamente

git log master..origin/master 

que tiene el mismo significado. Consulte el "gitrevisions" manual page para obtener más información, especialmente la parte "Especificación de rangos". Vea también los ejemplos en el git-log manual page

Usted es libre de personalizar la salida de git log como mejor le parezca, ya que admite un montón de opciones que lo afectan.

Tenga en cuenta que su sucursal local también podría tener confirmaciones que la rama remota coincidente no contiene (aún). Para obtener una visión general de ellos, debe revertir las revisiones pasadas al git log por (con suerte) razones obvias.

Como es habitual, es esencial para educateyourself comprender los conceptos subyacentes antes de comenzar a utilizar una herramienta. Por favor, hazlo.

+6

¿Alguna razón por la cual 'git diff master origin/master' no fue mencionado? Parece abordar la pregunta del OP de manera muy simple ... (Soy nuevo para Git y estoy aprendiendo, por favor corrígeme si está mal). – Howiecamp

3

Trate

git log --oneline --decorate origin/master 

Esto le dará el registro de cambios de la master cabeza de la origin a distancia (se puede sustituir cualquier otra rama remota según sea necesario). Usted obtendrá una salida algo como esto:

234121 (origin/master) Commit message 5 
872373 Commit message 4 
623748 Commit message 3 
235090 (master) Commit message 2 
192399 Commit message 1 

La cometer marcada (master) es la cabecera de su master sucursal local. La confirmación marcada (origin/master) es el encabezado de la rama master del control remoto.

Cuestiones relacionadas