2012-09-14 9 views
21

Estoy tratando de pasar a una sucursal de mi local al origen. El nombre de la sucursal y el camino es el mismo. He estado empujando y tirando de esta rama por un tiempo y nunca tuve un problema. Pero de repente, comenzó a comportarse mal. La última vez cuando traté de empujar a su origen con los siguientes comandos:Notorio Git Error: control remoto rechazado (no se pudo bloquear)

git push origin feature/Prizefulfilment 

Me da errror siguiente:

72c6c1da98e5cff4484e254a538d9e3b472156ff but expected 0000000000000000000000000000000000000000 

Googled alrededor pero no encontrar una solución bastante satisfactorio a ella todavía.

Mi error exacto se parece a lo siguiente:

$ git push origin feature/Prizefulfilment 
Counting objects: 126, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (75/75), done. 
Writing objects: 100% (78/78), 8.83 KiB, done. 
Total 78 (delta 61), reused 0 (delta 0) 
error: Ref refs/heads/feature/Prizefulfilment is at 72c6c1da98e5cff4484e254a538d9e3b472156ff but expected 0000000000000000000000000000000000000000 
remote: error: failed to lock refs/heads/feature/Prizefulfilment 
To [email protected]:OpusOneSCRUM 
! [remote rejected] feature/Prizefulfilment -> feature/Prizefulfilment (failed to lock) 
error: failed to push some refs to '[email protected]:OpusOneSCRUM'` 

¿Alguna idea?

+1

Es posible que desee ejecutar 'git fsck' en su local y remoto para asegurarse de que nada está seriamente dañado. – singpolyma

+0

Devolvió algunos commits colgantes en mi local 'Comprobando directorios de objetos: 100% (256/256), hecho. Comprobación de objetos: 100% (106152/106152), hecho. colgando burbuja 4118c6392bbea95a6404d40344e12ff8fe1e64c8 colgando burbuja a34f2078115375df3749567e01793e556f0e5ade colgando burbuja 9a5e545d9056200834f74d6426144269974467a0 colgando burbuja 867c5821823a875e724203b5bc8bbf65c8b72931 colgando burbuja 128ccc6d40e4090cd725d37867308e525825b991 gota colgando 5b91603a188d5f13af4ef56b0f62d6d8caff92b4 colgando burbuja c6a5241f7a4c23a68456526adf94f3c784d1df69' y mucho más colgué – TeaLeave

+0

he seguido con ciruela Git y que se elimine una gran cantidad de gotas colgando tope con alguna las confirmaciones pendientes siguen allí ... – TeaLeave

Respuesta

28
git push feature/prizeFulfilment: feature/Prizefulfilment 

que es similar a this answer:

For the record, I believe the root cause of this problem was the difference in capitalisation between the local and remote branch names, and the case-insensitive nature of the Windows share that hosted the remote repository.

We just encountered this exact same error and were able to resolve the problem simply by renaming the local branch to match the capitalisation of the existing remote branch.

tratar de asegurarse de que utilizan la misma capitalización entre las ramas locales y remotos.

Su segundo comando hace explícito el enlace entre prizeFulfilment y Prizefulfilment remoto, por lo que funcionó. Pero no es una buena solución mantener una sucursal local con ese tipo de diferencia.

+0

Gracias por los comentarios, fue útil :). – TeaLeave

3

Lo que me sucedió fue que git estaba cambiando la capitalización de mi sucursal local. Tenía una antigua rama llamada Feature/blahBlah y una nueva rama llamada feature/fooBar. Este último se renombró automáticamente a Feature/fooBar ya que git almacena sucursales como carpetas y no pude tener el mismo nombre de carpeta con mayúsculas diferentes.

Para arreglarlo, tuve que entrar en .git/refs/heads y cambiar el nombre 'Característica' a 'característica' `por lo que todas las ramas serían consistentes.

5

Otro posible motivo de problemas presentes también en los sistemas sensibles a mayúsculas y minúsculas es la existencia de nombres de infracciones conflictivos.

Si el repositorio remoto contiene la rama a/b y está intentando insertar la rama a/b/c git informará del mismo error (definitivamente esta descripción del error debería mejorarse).

https://coderwall.com/p/qkofma/a-caution-about-git-branch-names-with-s https://ocroquette.wordpress.com/2011/07/10/git-failed-to-lock/

-1

Al llegar el mensaje de este tipo, no tire primera operación de control remoto branch.Then hacer flexiones operation.When alguien empuja archivos al servidor remoto, se desplazará la rama principal (en el caso de la rama remota es maestro, puede ser cualquier nombre) en otro lugar. Debe actualizar esto en el repositorio local, de modo que el origen/principal en el repositorio local avance. Luego, agregue archivos en el repositorio local y confírmelo. Luego haga operación de empuje. Funcionó para mí

0

En mi caso, tenía una rama de pago con todas las letras minúsculas. Esto causó una inconsistencia entre la rama remota y los nombres de las sucursales locales.

La sucursal remota era INT-4368-alguna-característica-detalles, mientras que la sucursal local era int-4368-some-feature-details.

Para solucionarlo, entré en .git \ refs \ heads \ feature y cambié el nombre de la rama para que coincida con el control remoto. Luego fue a la línea de comandos y corrió

git checkout INT-4368-some-feature-details 
2

vi ocurra este error porque existía una rama anterior con el mismo nombre que mi nuevo nombre de ruta rama. Ejemplo:

  • remoto tiene rama: some_feature
  • tiene local de la rama: empuja some_feature/some_subfeature
  • local rama some_feature/some_subfeature a distancia
  • tiene remoto de error: (failed to lock)

Soluciones:

    Cambiar el nombre de
  • rama local some_feature/some_subfeature a foo/some_subfeature
  • Eliminar rama remota some_feature
Cuestiones relacionadas