Como se menciona en la respuesta de Yoshua Wuyts , usando :git branch
git branch --unset-upstream
Otras opciones:
No tiene que eliminar su sucursal local.
Simplemente elimine la rama local que está rastreando la rama remota:
git branch -d -r origin/<remote branch name>
-r, --remotesle dice a git que elimine la rama de seguimiento remoto (es decir, elimine la rama establecida para rastrear la rama remota). Esto será no eliminar la rama en el repositorio remoto !
Consulte " Tener dificultades para comprender git-fetch "
no existe tal concepto de sucursales de seguimiento local, solo sucursales de seguimiento remoto.
Entonces, ¿ origin/masterhay una rama de seguimiento remoto masteren el originrepositorio?
Como se mencionó en Dobes Vandermeer 's respuesta , también es necesario para restablecer la configuración asociada al local de la rama:
git config --unset branch.<branch>.remote
git config --unset branch.<branch>.merge
Elimine la información ascendente para <branchname>.
Si no se especifica ninguna rama, la rama predeterminada es la actual.
(git 1.8+, octubre de 2012, commit b84869e por Carlos Martín Nieto ( carlosmn) )
Eso hará que cualquier push / pull sea completamente inconsciente origin/<remote branch name>.
remote.<name>.fetchconfiguración de configuración de referencia, pero no estoy seguro de si puede excluir una rama al especificar una especificación de referencia.git branch -d -r origin/<remote branch name>eliminará una rama de seguimiento remoto como se declara localmente , en su repositorio. Será no eliminar la rama en el propio repo a distancia (sólogit push :developmentharía eso). Entonces, cuando esté presionando su localdevelopment, con un historial diferente al de la rama de desarrollo remoto (en el repositorio remoto), aún recibirá lanon-fast-forwardadvertencia.Para eliminar el flujo ascendente de la rama actual, haga lo siguiente:
Está disponible para Git v.1.8.0 o posterior. (Fuentes: 1.7.9 ref , 1.8.0 ref )
fuente
fuente
git branch --unset-upstream [branchname]fatal: 'origin/master' does not appear to be a git repository fatal: Could not read from remote repository.después de hacer esto y probar un origen / maestro de git pullPara eliminar la asociación entre la rama local y la remota, ejecute:
Opcionalmente, elimine la sucursal local después si no la necesita:
Esto no eliminará la rama remota.
fuente
git branch -d <branch>No es necesario eliminar la asociación.git branch -vv, seguirá viendo las ramas viejas hasta que lo hagagit branch -d <branch>.git pullpuede tomar todas las ramas remotas y volver a agregar cualquiera que considere "aparecido" en el control remoto. Puede cambiar este comportamiento de "extraer todas las ramas" haciendogit config [--global] push.default simpleogit config [--global] push.default current. Más sobrepush.defaultaquí .La forma más simple es editar
.git/configAquí hay un archivo de ejemplo
Eliminar la línea
merge = refs/heads/test1en latest1sección de ramafuente
.git/configestá disponible.Puede eliminar la rama de seguimiento remoto utilizando
como VonC menciona arriba. Sin embargo, si conserva su copia local de la rama,
git pushaún intentará impulsar esa rama (lo que podría generar un error de avance no rápido como lo hizo para ruffin ). Esto se debe a que la configuraciónpush.defaultpredeterminada es lomatchingque significa:(ver http://git-scm.com/docs/git-config debajo
push.default)Ya que esto probablemente no es lo que quería cuando se eliminó la rama remota de seguimiento, se puede establecer
push.defaultqueupstream(otrackingsi tiene git <1.7.4.3)utilizando
y git dejará de intentar empujar ramas que usted "ha dejado de rastrear".
Nota: La solución más simple sería simplemente cambiar el nombre de su sucursal local a otra cosa. Eso eliminaría también algunas posibilidades de confusión.
fuente
Aquí hay una línea para eliminar todas las ramas de seguimiento remoto que coinciden con un patrón:
git branch -rd $(git branch -a | grep '{pattern}' | cut -d'/' -f2-10 | xargs)fuente
git branch -r -D $(git branch -r | grep -v "master")Esta no es una respuesta a la pregunta, pero no pude descubrir cómo obtener un formato de código decente en un comentario anterior ... así que aquí está mi comentario.
Tengo la receta presentada por @Dobes en una elegante entrada de shmancy [alias] en mi .gitconfig:
Entonces solo puedo correr
fuente
git branch --unset-upstreamdeja de rastrear todas las sucursales locales, lo cual no es deseable.Eliminar la
[branch "branch-name"]sección del.git/configarchivo seguido degit branch -D 'branch-name' && git branch -D -r 'origin/branch-name'Funciona lo mejor para mí.
fuente
Puede usar esta forma para eliminar su rama remota
fuente
La forma más fácil de hacer esto es eliminar la rama de forma remota y luego usar:
git fetch --prune (también conocido como git fetch -p)
fuente