Wenn ich meine Filialen mit aufliste git branch -a
, git zeigt mir entfernte Zweige, die ich auf meiner Fernbedienung (gitlab) nicht finden kann. Ich habe versucht, diese Zweige auszuchecken und zu verfolgen, und zu meiner großen Überraschung hat Idiot es geschafft. Aber wenn ich zB git push origin :branch_name
, sagt git, dass die Remote-Ref nicht existiert, und beweist damit, dass ich diese Branches nicht in meiner Remote habe. Daher habe ich eine Frage, werden diese Zweige in einer Art lokalem Cache gespeichert? Und wenn ja, wie kann man es löschen?
Wie lösche ich Git-Caches?
vcmkrtchyan
Verwenden git fetch -p
um Ihre lokalen Caches zu bereinigen
Jan
Wie beim Bereinigen alter entfernter Git-Zweige erwähnt, sollten Sie verwenden git remote prune origin
.
Die beiden anderen dort genannten Befehle habe ich nicht verwendet.
Ich hatte ein seltsames Problem unter macOS, bei dem ich Phantomversionen von Zweigen in Großbuchstaben erhielt, z. B. würde meine Remote-Zweigliste angezeigt Ben/some-branch
lokal, aber der Server würde zeigen ben/some-branch
.
git remote prune origin
würde (richtig) sie entfernen, aber git fetch --prune
würde sie (fälschlicherweise) gleich zurückbringen. Sehr merkwürdig.
Soweit ich das beurteilen kann, hatte ich irgendwann in der Vergangenheit eine Ben/something
Zweig, sondern weil die Das Standard-MacOS-Dateisystem unterscheidet nicht zwischen Groß- und Kleinschreibungdas .git
Metadaten hingen an einem (großgeschrieben) .git/refs/remotes/origin/Ben
Ordner und verwenden Sie ihn für die (Kleinbuchstaben) Remote-Zweig-Referenzen.
rm -rf .git/refs/remotes/origin/Ben && git fetch
bring mich wieder in Ordnung.
-
Vielen Dank! Dies ist die einzige Antwort, die mir bei meiner Phantom-Großbuchstabenversion von branch geholfen hat. Es war super nervig.
– Ecaterina Galeru
13. September um 10:44 Uhr