git fetch origin --prune nicht löschen Filialen?
An einem Punkt dachte ich, dass git fetch origin --prune
gelöscht lokalen Niederlassungen, die waren nicht mehr auf dem server vorhanden. Irgendwie ist das nicht meine Erfahrung im moment.
Ich lief diesen Befehl, und die lokale Niederlassung wurde nicht gelöscht. Es ist nicht ausgecheckt. Ich lief git branch -vv
zu überprüfen, diese info, und ich sehe
feature/MyGreatFeature f30efc7 [origin/feature/MyGreatFeature: gone]
So scheint es, zu wissen, dass es Weg ist. Warum sollte es nicht löschen, meine lokale Filiale?
Läuft git version 2.7.4 (Apple Git-66)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den verschiedenen prune-Optionen (
git remote update --prune
,git remote prune
,git fetch --prune
) nur löschen remote-tracking branches.1Müssen Sie manuell löschen von lokalen Niederlassungen, die Sie nicht mehr wollen, oder ändern oder entfernen Sie Ihre upstream-Einstellung, wenn der remote-tracking-branch nicht mehr vorhanden. Beachten Sie, dass jede lokale Niederlassung aufnehmen können remote-und/oder Zweig, der jetzt gar nicht mehr, oder noch nie getan habe, bestehen. In diesem Fall Git meist wirkt, als wenn die lokalen Niederlassungen haben keine upstream-set, außer, dass seit der version 1.8.5, mehrere Befehle Bericht der upstream-als "Weg" oder anderweitig ungültig, und kann vorschlagen, mit
--unset-upstream
.1genauer gesagt, Sie " Ziel löschen refs nach der refspec mapping über die Befehlszeile oder
fetch
Linien von der Konfiguration. Also, für Holen Spiegel Sie kann löschen von lokalen Niederlassungen. Die meisten Klone sind nicht als Spiegel Holen, aber.Gab es einige der letzten bug fixes für komplexe mappings, um sicherzustellen, dass Git nicht beschneiden eines zugeordneten Zweig in einigen Fällen, wenn es nicht sollte. Für jeden normalen repository—gewöhnlicher Klon oder Reine fetch-Spiegel—diese Updates haben keinen Effekt; Sie bewirken nur, wenn Sie kompliziert
fetch
Konfigurationen.[]
aufgit branch -vv
ist es nicht ein remote-tracking-branch in dem Fall?[...]
ist einfach der upstream. Wenn der upstream ist ein remote-tracking-branch, das ist, wenn es wahrscheinlich beschnitten werden. In Ihrem Beispiel haben Sie[origin/feature/MyGreatFeature: gone]
die aussieht wie ein remote-tracking-branch, der bereits bereinigt wurde. Git hat immer noch die lokale Niederlassungfeature/MyGreatFeature
, und in.git/config
, die Branche hat immer noch seine Fernbedienung eingestelltorigin
und deren vor-eingestellt. Sie können, z.B., löschen Sie die lokalen Zweig (der löscht die tracking-info), oder--unset-upstream
auf, wenn Sie möchten, halten Sie die lokale Niederlassung mit keine upstream-set.Den Befehl, den Sie wollen, ist
Diese Frage ist fast Wort für Wort, was Sie suchen.
remotes/origin/mybranch
). Es löscht nicht Ihre lokale Niederlassung (z.B.mybranch
). Löschen Sie diese separat.