git frage



  • hallo zusammen,

    ich habe mal eine frage. ich habe ein git repo, bei dem ich einen Branch A gelöscht habe. dann habe ich git push origin :A gemacht und bei mir ist A in gitk --all auch verschwunden. aber bei meinen kollegen taucht trotz git fetch A immer noch als remote branch auf. wieso ist dies so? wie bekomme ich diesen sauber gelöscht??

    vielen dank.
    sven



  • ok,

    ich sehe: git remote prune origin war die lösung bei meinem kollegen, aber warum ist dies so?



  • sven_ schrieb:

    ich sehe: git remote prune origin war die lösung bei meinem kollegen, aber warum ist dies so?

    Die defaults in git sind so, dass es sehr schwierig ist, Daten zu verlieren.

    Ich habe keine konkrete Quelle dafür, aber ich denke, dass der Grund ist, warum ein einfaches git fetch keine tracking branches entfernt. Statt git remote prune origin geht übrigens auch git fetch --prune, was ich intuitiver finde.



  • ah,

    alles klar. danke. 🙂



  • Nur noch als Bemerkung: Ein unnötiger remote tracking branch kostet normalerweise so gut wie gar nichts. Konkret kostet er an Speicher genau eine einzige Datei, die genau einen einzigen 40-Zeichen-Hash speichert und in .git/refs/remotes/<remote>/ liegt.

    Ein unnötig gewordener remote tracking branch kostet also (normalerweise) nur eine handvoll Bytes und deswegen ist es ziemlich vernachlässigbar, ob er nun da ist oder nicht.

    Die einzige Ausnahme ist, wenn der Branch nicht gemerged wurde. Dann kostet er mehr Speicher, weil die Commits, die nicht gemerged wurden, auch noch gespeichert werden müssen.



  • Ah, auch interessant zu wissen! Ich habe das Problem, dass mein git status etc. extrem lange dauert, und mit dem Projektverlauf immer länger dauert. Da hatte ich gehofft ein wenig Performance rauszukitzeln. 😞


Log in to reply