git – twig remota "aparentemente" no eliminada

El desarrollador A crea una twig remota

git checkout -b myBranch git push -u origin myBranch 

El desarrollador B lo verifica

 git fetch origin myBranch git checkout myBranch 

Ambos hacen un poco de trabajo, se comprometen, tiran, etc. Cuando terminan, se fusionan para desarrollar

 git checkout develop git merge --no-ff myBranch git push origin develop 

y borrar la twig

 # Developer A git branch -d myBranch # delete local branch git push origin --delete myBranch # delete remote branch # Developer B git branch -d myBranch git fetch 

En este punto, solo el Desarrollador A que presionó la eliminación remota puede ver el estado correcto del control remoto. El desarrollador B aún ve myBranch en remoto, aunque ya no exista. Si el Desarrollador B intenta verificar myBranch y extraer, obtiene un error de 'no puede encontrar mi ref de la bifurcación'.

 #Developer A git branch -a * develop remotes/origin/HEAD -> origin/develop remotes/origin/develop remotes/origin/production #Developer B git branch -a * develop remotes/origin/myBranch # <<<<< why is this line here?? remotes/origin/HEAD -> origin/develop remotes/origin/develop remotes/origin/production 

Si vamos a la console web bitBucket y miramos el repository, la twig 'myBranch' no existe.

¿Qué está pasando aquí y por qué, cómo lo resolvemos?

El desarrollador B necesita usar el parámetro -p en git fetch. git fetch -p Este parámetro eliminará todas las references que no existen en el control remoto.

git branch -a

-a stand para todas las twigs (local + remoto) esta es la razón por la cual el usuario ve todas las twigs.

El desarrollador B aún ve myBranch en remoto, aunque ya no exista

Deberías ejecutar: git fetch --all --prune
La ciruela eliminará todas las copys locales de sus twigs, tags que se eliminan del server.


Puede configurar el valor de la transición para que sea el pnetworkingeterminado, por lo que eliminará las twigs y tags eliminadas en cada búsqueda

 git config fetch.prune true 

-p / –prune

Después de recuperar, elimine todas las references de seguimiento remoto que ya no existan en el control remoto.

Las tags no están sujetas a limitación si solo se obtienen debido al seguimiento automático pnetworkingeterminado de la label o debido a una opción -tag .

Sin embargo, si las tags se obtienen debido a un refspec explícito (ya sea en la línea de command o en la configuration remota, por ejemplo, si el control remoto se clonó con la opción –mirror), entonces también están sujetos a la eliminación .