Eu acidentalmente apaguei alguns branches remotos e eu realmente não sei qual é a consequência disso (eu cliquei no botão "Prune remote branches" nas extensões Git, pensando que isso excluiria um branch remoto).
A documentação oficial diz "git-prune - Remova todos os objetos inacessíveis do banco de dados de objetos". Eu realmente não entendo o que isso significa. Estou supondo que isso pode ter removido ramificações mescladas, mas não tenho certeza.
git
git-extensions
Daniel Ball
fonte
fonte
git gc
: git-scm.com/docs/git-prune também.Respostas:
"Prune remote branches" nas extensões Git executa o
git remote prune
comando, que remove seus branches locais de rastreamento remoto onde o branch não existe mais no remoto.Veja aqui: https://git-scm.com/docs/git-remote#git-remote-empruneem
fonte
Este apenas lixo coleta seus galhos.
Isso significa que, se um objeto (um commit) não puder ser alcançado em nenhum dos ancestrais do seu branch, ele será removido do banco de dados git e, como tal, não poderá mais ser alcançado.
Isso apenas limpa um pouco o repositório git e o torna mais leve.
fonte
git gc
ao invés de um,git prune
que essencialmente fará uma poda git também.git prune
egit remote prune
. Eles não são os mesmos, o último realmente limpa os ramos que não existem mais no remoto, enquanto deixa os ramos locais intactos.É importante saber que a poda é vinculada ao repo . Nem todo mundo sabe que você pode vincular seu repo local a vários controles remotos. É útil quando, por exemplo, você trabalha com um projeto de código aberto e é forçado a trabalhar por meio de garfos.
Portanto, o comando prune requer um nome de repo. Na maioria dos casos é
git remote prune origin
, mas você pode chamar seu repo de qualquer coisa, não precisa serorigin
.fonte
Pode haver branches de recursos remotos que são removidos após serem mesclados no master. Podemos ter excluído os branches de recursos como forma de limpeza. Mas se você tiver feito check-out do branch excluído para o sistema local e definido como status de rastreamento, git pull não excluirá esses branches locais (porque eles já estão desconectados do servidor). Para limpar esse tipo de ramos órfãos locais, o
git prune
comando será útil para ajudar.fonte