2011-01-30 19 views
8
git version 1.7.3.5 

Tengo las siguientes ramas:actualización de las ramas utilizando git pull

git branch 
    image 
    master 
* video 

hice un trabajo en la oficina. Y cuando llegué a casa, siempre actualizo en el cuaderno de mi casa.

Sin embargo, cuando hice una git remote show origin consigo el siguiente:

Local refs configured for 'git push': 
    image pushes to image (up to date) 
    master pushes to master (fast-forwardable) 
    video pushes to video (local out of date) 

así que hice un git pull para todas estas ramas:

git pull origin image 
git pull origin master 
git pull origin video 

Cuando hago un git status en el vídeo y la ramificación me sale:

nothing to commit (working directory clean) 

Cuando hago un git status en la rama maestra me sale:

Your branch is ahead of 'origin/master' by 5 commits. 

Qué no entiendo lo siguiente (fast-forwardable) y (local out of date)?

¿Pero en el estado de git para video dice que está actualizado?

¿Debo empujar a mi maestro si está adelantado por 5 commits?

Muchas gracias por todas las sugerencias

+2

ejecutar '--stat --pretty = formato: '% Cred% h% Creset -% s% Cgreen (% Cr)% Creset' --abbrev-commit --date = relative origin/master..master' para obtener una impresión sobre la diferencia. '(fast-forwardable)' significa que es seguro presionar: las ramas tienen los mismos commits excepto que una rama ('local' en sus casos) tiene algunos commits adicionales en la parte superior. – jfs

Respuesta

14

git remote show origin compara su repositorio local con el mando a distancia:

  • fast-forwardable significa que puede empujar los cambios locales de la rama remota.
  • local out of date significa que su sucursal local está detrás de la sucursal remota y que debe extraer de ella.

git status compara el directorio de trabajo local con la corriente de cometer la rama actual (también conocido como HEAD). Adicionalmente se compara con su oficina local con la copia de seguimiento (local!) De la rama remota (origin/master), de ahí el Your branch is ahead of 'origin/master' by 5 commits.

Para resolver la divergencia entre git status (que muestra sólo los datos locales) y git remote show origin (que muestra "en vivo" datos remotos) debe ejecutar git remote update origin, que actualizará sus ramas locales de seguimiento. Actualizará su origin/master local al estado del master del control remoto. Después de eso git status debería darle algo así como git log Your branch is behind 'origin/master' by X commits, and can be fast-forwarded.

+0

Si obtengo 'Su rama está detrás de 'origin/master' por X commits, y puede enviarse rápidamente. ¿Qué debo hacer? Gracias por adelantado. – MikeSchinkel

+1

Utilice 'git pull origin master' para actualizar su' master' local. – Koraktor

+0

¡Gracias por responder! – MikeSchinkel