git remote prune origin nicht löschen Sie die lokale Filiale, auch wenn seine upstream remote branch wird gelöscht

Dies ist ein häufiger Anwendungsfall für mich, ich clone a repository checkout eine Filiale, tun einige änderungen am code, mehrere verpflichtet, dann, wenn seine stabile, mache ich push-to-remote-schließlich wird der Zweig bekommt zusammengeführt und gelöscht werden. und ich bin Links mit einer lokalen Niederlassung mit vor-gegangen.

War ich auf der Suche nach einem sicheren Weg, der das löschen aller solcher Zweige. von der Beschreibung schien es wie git remote prune origin tut genau dies. Aber es scheint nicht zu funktionieren für mich.

Sehen die folgenden Verhaltensweisen, die Niederlassung encrdb_init gelöscht worden remote aber die git remote prune origin Befehl scheint nicht zu beschneiden es. Ich bin nicht sicher, warum.

$ git branch
  bugfix/encrdb_init
  * master
$
$ git remote prune origin
$
$ git checkout bugfix/encrdb_init
  Switched to branch 'bugfix/encrdb_init'
  Your branch is based on 'origin/bugfix/encrdb_init', but the upstream 
  is gone.
  (use "git branch --unset-upstream" to fixup)
$
$ git branch
  bugfix/encrdb_init <<< shouldn't this have been pruned?
  * master

Referenz hinzufügen Ausgabe von git remote show origin

$ git remote show origin
* remote origin
  Fetch URL: <redacted>
  Push  URL: <redacted>
  HEAD branch: master
  Remote branches:
    SSL_test                                                  tracked
    addNodeFix                                                tracked
    autoprefix                                                tracked
    release/1.0.2                                             tracked
  Local branches configured for 'git pull':
    bugfix/encrdb_init          merges with remote bugfix/encrdb_init
    master                      merges with remote master
    release/1.0.2               merges with remote release/1.0.2
  Local refs configured for 'git push':
    master                 pushes to master                 (up to 
date)
    release/1.0.2          pushes to release/1.0.2          (up to 
date)

$ git branch -vv
* bugfix/encrdb_init          341a078c [origin/bugfix/encrdb_init: gone] <redacted comment>`
  • Versuchen git remote prune origin --dry-run zu überprüfen, die veraltete Filialen
  • git remote prune origin --dry-run Ausgabe leer
  • es gibt leere, weil es keine mehr remote-tracking-branch zu löschen. Und bugfix/encrdb_init ist eine lokale (Sie können einen Schrägstrich in einem branch-name)
  • Sie erhalten eine Liste der your stale remote-tracking branches mit dem oben genannten Befehl. Wenn Sie nicht erhalten, es, etwas anderes ist wohl falsch
  • Möglich, Duplikat der Was sind die Unterschiede zwischen git remote prune, git prune, git fetch --prune, usw
  • Vielen Dank, es sieht aus wie der Befehl löscht nur die Filialen in remote aber nicht löschen Sie die lokale Filiale, die jetzt hängen gelassen. Es sieht aus wie der Befehl löscht nicht die lokalen Niederlassungen, auch diejenigen, die flussaufwärts gegangen.
  • ja, das ist der ganze Punkt von git remote: update oder löschen in der remotes namespace. Nicht zu manipulieren, mit lokalen Niederlassungen.
  • Ich aktualisiert meine Antwort mit der tatsächlichen Befehle, löscht die Zweige, die Sie wollen.

InformationsquelleAutor saketrp | 2018-02-16
Schreibe einen Kommentar