refname es ambiguo y pull failing

Ejecuté el siguiente command porque quería volver a mover mi twig de producción sin tener que pagar primero:

git branch -f production HEAD~1 

Ahora recibo la siguiente advertencia cuando pago la producción:

 warning: refname 'production' is ambiguous. 

Entonces corro:

 git pull 

Y recibo el siguiente error:

 First, rewinding head to replay your work on top of it... Fast-forwarded production to 7463e01c536ad52746b8879ef3d70ffd5a8db31e. error: Ref refs/heads/production is at 252038dfa22caba8a816a68dcb005c625e44c51f but expected ae5b621609c1b5b430e3d30711157298f842942a fatal: Cannot lock the ref 'refs/heads/production' Could not move back to refs/heads/production 

Sin embargo, puedo tirar de otras twigs. ¿Cómo puedo arreglar esto?

Informacion adicional

git tag no devuelve ningún resultado. Anteriormente tenía un repository de producción, pero ahora lo he renombrado para vivir

 > ~/repo (chris-membership-fees)$ git show-ref | grep production 88e0c37c9ae4ff6967ddd027b62b62fa2c0ac272 refs/heads/production 9d739cff44a898f0c68da33fb22a230985e479ce refs/remotes/backup/production ~/repo (chris-membership-fees)$ git branch -a | grep production production remotes/backup/production 

Iniciar session

Etiqueté la primera revisión como a y la segunda como b (tenga en count que los numbers de revisión han cambiado ya que la producción ahora es diferente). Este es el logging, simplificado por la decoración

 * commit 7463e01c536ad52746b8879ef3d70ffd5a8db31e (**tag: a**, backup/live-master, production, live-master) | | Date: Wed Dec 28 11:47:49 2011 +1100 | | Merge remote-tracking branch 'origin/joseph-quick-fix' | * commit f35f0259c4e36d46dd1df71b3293bef6105cef98 (origin/hotfix-googleplusdirectconnect) | | Date: Fri Dec 23 12:25:27 2011 +1100 | | Add google plus link tag to home page for direct connect | * commit 8b3a30ef2909439ac18b65ebbb316eb0cdd2d61c |\ Merge: f696f3e 88e0c37 | | | | Date: Wed Dec 21 14:28:45 2011 +1100 | | | | Merge branch 'master' into chris-hotfix | | * | commit f696f3e2b8f4a19ec2b2c2a3638c68e7a52836e3 (origin/chris-hotfix, backup/chris-hotfix, chris-hotfix) | | | | Date: Wed Dec 21 11:56:10 2011 +1100 | | | | Fixed buyer price info | | | * commit 88e0c37c9ae4ff6967ddd027b62b62fa2c0ac272 | |\ Merge: c9655da ae5b621 | |/ |/| Date: Wed Dec 21 11:53:36 2011 +1100 | | | | Merge branch 'master' of git.freelancer.com:production into production | | * | commit ae5b621609c1b5b430e3d30711157298f842942a (HEAD, **tag: b**) | | | | Date: Wed Dec 21 10:51:47 2011 +1100 | | | | Merge branch 'master' of git.freelancer.com:production | | | * commit c9655da9c1627ab53720ae818affdd1e6f14119f (origin/game-shadow2) | | | | Date: Tue Dec 20 18:41:57 2011 -0500 | | | | * Removed debugging code | | | * commit ca88d33538bd3b99ea7c186b5b531e611847989d | |\ Merge: 99e983a c397a8b | |/ |/| Date: Tue Dec 20 17:25:24 2011 -0500 | | | | Merge remote-tracking branch 'production/master' into shadow2 

Si solo desea eliminar la advertencia:

 git config --global core.warnambiguousrefs false 

La advertencia viene porque tiene una twig llamada producción y también una producción llamada remota. Será ideal cambiar el nombre de cualquiera de los dos a otra cosa.

 > ~/repo (chris-membership-fees)$ git show-ref | grep production 88e0c37c9ae4ff6967ddd027b62b62fa2c0ac272 refs/heads/production 9d739cff44a898f0c68da33fb22a230985e479ce refs/remotes/backup/production 88e0c37c9ae4ff6967ddd027b62b62fa2c0ac272 refs/remotes/production/master 

refs/heads/production es ambiguos debido a refs refs/heads/production remotes refs/remotes/production . La resolución es genérica e independiente del prefijo de tipo de reference, por lo que las twigs, tags, controles remotos e incluso los nombres de references personalizadas no deben colisionar.

Gracias a Johannes Sixt en la list de correo de Git.

La razón más probable es que tenga una 'producción' de reference directamente en el directory .git. Tal vez usted o uno de sus scripts lo creó accidentalmente usando 'git update-ref production ae5b621', es decir, sin dar el nombre completo de la ruta de acceso.

En realidad, no estaba en el directory raíz .git, pero tenía una carpeta de producción vacía en las twigs.