si fusiona --squash your old_branch, recibirá esta advertencia siempre que lo elimine localmente. Cuando aplastando su índice de reajuste está, por tanto, no coincide con old_branch HEAd
Antoine Wils
Si bien las otras respuestas son correctas, el comentario de Antoine fue la razón al menos en mi caso.
Squrppi
Respuestas:
66
Esto solo le advierte que tiene cambios insertados en la rama origin, pero no están fusionados master, por lo que solo los está eliminando localmente.
Le advierte que ya no tiene una copia local de esa rama, pero existe en origin
Si también desea eliminar la rama remota, use git push --delete origin old_branch
Sí, masterno está involucrado en esto. Te refieres a la rama actual, más bien. ;)
Fernando Espinosa
1
Recibo esta advertencia incluso si hago una git branch -d branch_nameque se supone que solo debe eliminar la rama localmente. ¿Por qué es necesaria la advertencia en este caso?
Akshay Damle
2
Pero origin / old_branch se fusiona en origin / master. Más tarde hice git pull origin en la rama maestra. Sigue siendo el mismo error. ¿No es este error en GH?
vikramvi
36
Suponiendo que actualmente ha realizado el mastercheck out, significa que los cambios realizados old_branchno están presentes en master. Sin embargo, ellos están presentes en old_branchel origin.
Sí. ¡Esta es la respuesta correcta! "pero aún no combinado con HEAD", HEADaquí se hace referencia al HEAD de la rama principal local.
Devy
3
Pero origin / old_branch se fusiona en origin / master. Más tarde hice git pull origin en la rama maestra. Sigue siendo el mismo error. ¿No es este error en GH?
vikramvi
1
@vikramvi Suponiendo que haya masterverificado localmente, aún puede ocurrir si el SHA de cualquiera de las confirmaciones ha cambiado; es decir, se basó origin/old_branchen origin/master. Incluso si fuera un avance rápido, esto generará un nuevo SHA para cada nueva confirmación de origin/old_branch, lo que hará que git vea los SHA originales en su local old_branchcomo no fusionados después de extraer los cambios a su masterrama local . Puede ver esta respuesta y esta respuesta de por qué ocurre esto.
8
Esto significa que su sucursal local old_branchestá actualizada con la sucursal remota old_branchen remota, originpero no está fusionada con la sucursal masterque se considera la sucursal principal en el repositorio.
Es solo una precaución de git. Te da una pista: ¿tal vez hiciste tu trabajo en la rama de tema y te olvidaste de fusionarla con la rama principal?
actualizar
Git te advierte que no pierdas tus cambios. Por ejemplo, si no tiene su old_branchgit maestro, no le permita ni siquiera eliminar la rama que no está fusionada con el maestro (bueno, lo permite, pero con la clave -Dque es la force-deleteopción).
Entonces, la -D es cuando no ha compartido la rama que se está eliminando (realmente se confirma) con ninguna rama remota. Si bien la advertencia es para informarle que ha compartido la rama (confirmaciones) con el control remoto, pero simplemente no está fusionada con HEAD. HEAD es HEAD, el control remoto / refs / HEAD no es lo mismo. Pero corríjame si me equivoco con respecto a las diferencias entre HEAD remoto y HEAD local.
Eric
7
Para agregar a las otras respuestas, esto también puede significar que el cambio podría fusionarse con el maestro, solo que su copia local del maestro aún no lo refleja. De cualquier manera, esto solo le informa que la copia local de su maestro no tiene los cambios que presionó en el origen. Fusionado / No fusionado ... tal vez, tal vez no
Respuestas:
Esto solo le advierte que tiene cambios insertados en la rama
origin
, pero no están fusionadosmaster
, por lo que solo los está eliminando localmente.Le advierte que ya no tiene una copia local de esa rama, pero existe en
origin
Si también desea eliminar la rama remota, use
git push --delete origin old_branch
fuente
master
no está involucrado en esto. Te refieres a la rama actual, más bien.;)
git branch -d branch_name
que se supone que solo debe eliminar la rama localmente. ¿Por qué es necesaria la advertencia en este caso?Suponiendo que actualmente ha realizado el
master
check out, significa que los cambios realizadosold_branch
no están presentes enmaster
. Sin embargo, ellos están presentes enold_branch
elorigin
.fuente
HEAD
",HEAD
aquí se hace referencia al HEAD de la rama principal local.master
verificado localmente, aún puede ocurrir si el SHA de cualquiera de las confirmaciones ha cambiado; es decir, se basóorigin/old_branch
enorigin/master
. Incluso si fuera un avance rápido, esto generará un nuevo SHA para cada nueva confirmación deorigin/old_branch
, lo que hará que git vea los SHA originales en su localold_branch
como no fusionados después de extraer los cambios a sumaster
rama local . Puede ver esta respuesta y esta respuesta de por qué ocurre esto.Esto significa que su sucursal local
old_branch
está actualizada con la sucursal remotaold_branch
en remota,origin
pero no está fusionada con la sucursalmaster
que se considera la sucursal principal en el repositorio.Es solo una precaución de git. Te da una pista: ¿tal vez hiciste tu trabajo en la rama de tema y te olvidaste de fusionarla con la rama principal?
actualizar
Git te advierte que no pierdas tus cambios. Por ejemplo, si no tiene su
old_branch
git maestro, no le permita ni siquiera eliminar la rama que no está fusionada con el maestro (bueno, lo permite, pero con la clave-D
que es laforce-delete
opción).fuente
master
, pero el actualHEAD
.Para agregar a las otras respuestas, esto también puede significar que el cambio podría fusionarse con el maestro, solo que su copia local del maestro aún no lo refleja. De cualquier manera, esto solo le informa que la copia local de su maestro no tiene los cambios que presionó en el origen. Fusionado / No fusionado ... tal vez, tal vez no
fuente