2012-08-27 14 views
43

que desea es obtener una mejor comprensión del mensaje de advertencia después de que he eliminado una sucursal localgit branch -d avisa

advertencia: aún no borrando las 'old_branch' rama que se ha fusionado a 'refs/remotes/origin/old_branch', pero se fusionaron para HEAD.

+5

si fusiona --cambia su antigua_branca recibirá esta advertencia siempre cuando la borre localmente. Al aplastar su índice se restablece, por lo tanto, no coincide con old_branch HEAd –

Respuesta

19

Asumiendo que actualmente tiene master desprotegido, significa que los cambios realizados en old_branch no están presentes en master. Sin embargo, ellos son presentes en old_branch en origin.

+1

Sí. ¡Esta es la respuesta correcta! "pero aún no fusionados a' HEAD' ", el' HEAD' aquí hace referencia al HEAD de la rama principal local. – Devy

+0

Pero origin/old_branch se fusiona en origen/maestro. Más tarde hice git pull origen en rama principal. Todavía el mismo error. ¿No es este error en GH? – vikramvi

33

Esto solo le advierte que tiene cambios enviados a la rama en origin, pero no se combinan en master, por lo que solo lo está eliminando localmente.

Se le advierte que ya no tiene una copia local de esa rama, pero existe en origin

Si desea borrar la rama remota, así, utilizar git push --delete origin old_branch

+2

Sí, 'maestro' no está involucrado en esto. Te refieres a la rama actual, más bien. ';)' – fernandoespinosa

+1

Recibo esta advertencia incluso si hago una 'git branch -d branch_name' que se supone que solo elimina la rama localmente. ¿Por qué es necesaria la advertencia en este caso? –

+0

Pero origin/old_branch se fusiona en origen/maestro. Más tarde hice git pull origen en rama principal. Todavía el mismo error. ¿No es este error en GH? – vikramvi

2

Para añadir a la otras respuestas, esto también puede significar que el cambio podría combinarse para dominar, solo que su copia local del maestro aún no lo refleja. De cualquier forma, esto solo le informa que la copia local de su maestro no tiene los cambios que presionó en el origen. Fusionada/No se fusionó ... tal vez, tal vez no

2

Esto significa que su rama local old_branch está al día con la rama remota old_branch del mando a distancia origin pero no se fusiona a la rama master que se considera que es la rama principal de el repositorio.

Es solo una precaución de git. Te da una pista: tal vez hiciste tu trabajo en la rama temática y olvidaste fusionarlo con la rama principal.


actualización

Git le advierte de la pérdida de los cambios. Por ejemplo, si no tiene su old_branch en el git maestro, no le permite incluso eliminar la bifurcación que no está fusionada al maestro (así lo permite, pero con la clave -D que es la opción force-delete).

+5

No necesariamente 'master', sino el' HEAD' actual. –

+0

Así que -D es cuando no ha compartido la rama que se está eliminando (realmente se compromete) con cualquier rama remota. Si bien la advertencia es para informarle que ha compartido la rama (confirmaciones) con el control remoto, pero simplemente no está fusionado con HEAD.HEAD es HEAD, remote/refs/HEAD no es lo mismo. Pero por favor corrígeme si me equivoco con respecto a las diferencias entre HEAD remoto y HEAD local. – Eric