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, --remotes
le 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/master
hay una rama de seguimiento remoto master
en el origin
repositorio?
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>.fetch
configuració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 :development
harí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-forward
advertencia.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 pull
puede 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 simple
ogit config [--global] push.default current
. Más sobrepush.default
aquí .La forma más simple es editar
.git/config
Aquí hay un archivo de ejemplo
Eliminar la línea
merge = refs/heads/test1
en latest1
sección de ramafuente
.git/config
está disponible.Puede eliminar la rama de seguimiento remoto utilizando
como VonC menciona arriba. Sin embargo, si conserva su copia local de la rama,
git push
aú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.default
predeterminada es lomatching
que 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.default
queupstream
(otracking
si 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-upstream
deja de rastrear todas las sucursales locales, lo cual no es deseable.Eliminar la
[branch "branch-name"]
sección del.git/config
archivo 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