Conforme mencionado na Yoshua Wuyts ' resposta , usando git branch
:
git branch --unset-upstream
Outras opções:
Você não precisa excluir sua filial local.
Simplesmente exclua a filial local que está rastreando a filial remota:
git branch -d -r origin/<remote branch name>
-r, --remotes
diz ao git para excluir a ramificação de rastreamento remoto (ou seja, excluir a ramificação definida para rastrear a ramificação remota). Isto vai não excluir o ramo no repo remoto !
Consulte " Dificuldade para entender o git-fetch "
não existe esse conceito de ramificações de rastreamento local, apenas ramificações de rastreamento remoto.
O mesmo origin/master
ocorre com um ramo de rastreamento remoto master
no origin
repositório
Conforme mencionado na Dobes Vandermeer 's resposta , você também precisará redefinir a configuração associada ao local de ramo:
git config --unset branch.<branch>.remote
git config --unset branch.<branch>.merge
Remova as informações upstream para <branchname>
.
Se nenhuma ramificação for especificada, o padrão será a ramificação atual.
(git 1.8+, outubro de 2012, commit b84869e de Carlos Martín Nieto ( carlosmn
) )
Isso fará qualquer push / pull completamente inconsciente origin/<remote branch name>
.
remote.<name>.fetch
configuração refspec, mas não tenho certeza se você pode excluir uma ramificação ao especificar uma refspec.git branch -d -r origin/<remote branch name>
excluirá um ramo de rastreamento remoto, conforme declarado localmente , no seu repositório. Ele não excluirá a ramificação no repositório remoto em si (apenas umagit push :development
faria isso). Portanto, quando você estiver enviando seu localdevelopment
, com um histórico diferente do ramo de desenvolvimento remoto (no repositório remoto), você ainda receberá onon-fast-forward
aviso.Para remover o montante da ramificação atual, faça:
Está disponível para o Git v.1.8.0 ou mais recente. (Fontes: 1.7.9 ref , 1.8.0 ref )
fonte
fonte
git branch --unset-upstream [branchname]
fatal: 'origin/master' does not appear to be a git repository fatal: Could not read from remote repository.
depois de fazer isso e tentar um git origem pull / mestrePara remover a associação entre a ramificação local e remota, execute:
Opcionalmente, exclua a ramificação local posteriormente, se você não precisar dela:
Isso não excluirá a ramificação remota.
fonte
git branch -d <branch>
não é necessário para remover a associação.git branch -vv
, ainda verá os galhos antigos até o fazergit branch -d <branch>
.git pull
pode pegar todas as ramificações remotas e adicionar novamente todas as que considere ter "aparecido" no controle remoto. Você pode alterar esse comportamento "puxar todos os ramos" fazendogit config [--global] push.default simple
ougit config [--global] push.default current
. Maispush.default
aqui .A maneira mais simples é editar
.git/config
Aqui está um arquivo de exemplo
Exclua a linha
merge = refs/heads/test1
natest1
seção de ramificaçãofonte
.git/config
está disponível.Você pode excluir o ramo de rastreamento remoto usando
como VonC menciona acima. No entanto, se você mantiver sua cópia local da ramificação,
git push
ainda tentará enviá- la por push (o que pode causar um erro de avanço rápido, como ocorreu com o ruffin ). Isso ocorre porque a configuraçãopush.default
padrão é omatching
que significa:(consulte http://git-scm.com/docs/git-config em
push.default
)Como provavelmente não é o que você queria quando excluiu o ramo de rastreamento remoto, você pode definir
push.default
comoupstream
(outracking
se tiver git <1.7.4.3)usando
e o git vai parar de tentar enviar ramificações que você "parou de rastrear".
Nota: A solução mais simples seria renomear sua filial local para outra coisa. Isso eliminaria algum potencial de confusão também.
fonte
Aqui está uma lista para remover todas as ramificações de rastreamento remoto que correspondem a um padrão:
git branch -rd $(git branch -a | grep '{pattern}' | cut -d'/' -f2-10 | xargs)
fonte
git branch -r -D $(git branch -r | grep -v "master")
Esta não é uma resposta para a pergunta, mas eu não conseguia descobrir como obter uma formatação decente de código em um comentário acima ... então, aqui está o meu comentário, com a auto-reputação-deprimida.
Eu tenho a receita enviada por @Dobes em uma entrada chmancy [alias] no meu .gitconfig:
Então eu posso correr
fonte
git branch --unset-upstream
pára de rastrear todas as filiais locais, o que não é desejável.Remova a
[branch "branch-name"]
seção do.git/config
arquivo seguida porgit branch -D 'branch-name' && git branch -D -r 'origin/branch-name'
funciona melhor para mim.
fonte
Você pode usar esta maneira para remover sua filial remota
fonte
A maneira mais fácil de fazer isso é excluir a ramificação remotamente e usar:
git fetch --prune (tcp git fetch -p)
fonte