2010-02-26 28 views
13

Duplicar posible:
'git pull origin mybranch' leaves local mybranch N commits ahead of origin. Why?Git - "Tu sucursal está por delante de 'origin/master' por 3 commits."

estoy recibiendo esta información en git

>git status 
# On branch master 
# Your branch is ahead of 'origin/master' by 3 commits. 
# 
nothing to commit (working directory clean) 

Y, cuando trato de empujar, me sale esto:

fatal: failed to write object 
error: unpack failed: unpacker exited with error code 
To ssh:<my repository> 
! [remote rejected] master -> master (n/a (unpacker error)) 
error: failed to push some refs to 'ssh:<my repository>' 

He estado buscando en Google un poco, (por ejemplo, aquí hay una pregunta de stackoverflow aquí - 'git pull origin mybranch' leaves local mybranch N commits ahead of origin. Why?) y el consejo general parece ser hacer un pull y luego un push. Pero esto no funciona para mí, un tirón me dice que estoy actualizado. También probé 'origen de git fetch' (nada). También lo intenté:

> git remote show origin 
* remote origin 
    URL: ssh://<my repository> 
    HEAD branch: master 
    Remote branch: 
    master tracked 
    Local branch configured for 'git pull': 
    master merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (fast forwardable) 

En caso de que ayude a alguien.

También traté de agregar un archivo ficticio en nuestro servidor web (que también verifica el maestro), enviándolo y empujándolo hacia arriba, luego tirando hacia abajo localmente. Eso funcionó bien. Pero todavía no puedo empujar. ¿Alguien puede decirme lo que tengo que hacer para resolver esto? Ni siquiera sé realmente lo que significa decir que he reenviado rápidamente en relación con el repositorio.

aplausos, máximo

EDITAR - para Ebneter y Dan (gracias)

> git config -l 
user.name=Max Williams 
push.default=tracking 
core.repositoryformatversion=0 
core.filemode=true 
core.bare=false 
core.logallrefupdates=true 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
remote.origin.url=ssh://<my repo url> 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 

Una captura de pantalla de gitk está en http://dl.dropbox.com/u/846812/gitk.png

  • soy nuevo GIT, así que puede No interpreto esto muy bien, pero me pregunto si la confirmación hecha como root (línea 6 en la sección superior), 'merge branch master ...' quizás haya mejorado las cosas. Yo no recuerdo haber hecho un commit como root, desconcertado ...

Dan - Creo que tienes razón: el error que consigo cuando intento de empujar es

error: unable to create temporary sha1 filename ./objects/05: File exists 

fatal: failed to write object 
error: unpack failed: unpacker exited with error code 

EDITAR - este comentario de la otra pregunta stackOverflow me he referido anteriormente hizo realidad solucionarlo:

Git remoto solos (mostrando la dirección correcta para GitHub repo) no es lo suficientemente . Para evitar tener un mensaje de advertencia "Sucursal está adelante" después de un git pull, primero necesita definir también el nombre remoto para una sucursal. De ahí mi sugerencia: escriba git config branch.master.remote yourGitHubRepo.git, luego pruebe un git pull y un estado de git y verifique si el problema persiste. - VonC 16 de noviembre a las 20:22

+2

Prueba a ejecutar 'gitk --all' para obtener una idea de dónde están tus commits. – noah

+0

El error que está recibiendo generalmente indica que algo está mal en el control remoto. Sin embargo, pareces estar implicando que * puedes * presionar desde tu servidor web. ¿Está bien? ¿Puedes mostrar el contenido completo de tu archivo de configuración (git config -l)? – ebneter

+0

Hay una respuesta provista [aquí] (http://stackoverflow.com/questions/1741143/git-git-pull-origin-mybranch-leaves-local-mybranch-n-commits-ahead-of-origin) – Surya

Respuesta

8

Parece que el problema que está teniendo está relacionado con el "error de desempaquetado" mencionado en la línea "rechazo remoto". Por algún motivo, el extremo remoto no puede descomprimir los objetos que se le enviaron. Esto podría ser causado por cualquier cantidad de cosas.Algunas cosas que puedes probar:

git fsck --full 

Ejecutarlo localmente y en el control remoto (si es posible).

git repack remotes/origin/master 

Ejecutar eso en el repositorio local.

Si ninguno de los dos soluciona el problema, intente buscar en Google git "unpacker error" para otras ideas. Personalmente, nunca experimenté este problema, por lo que desafortunadamente todos los consejos que puedo darles.

Cuestiones relacionadas