Wie in der Antwort von Yoshua Wuyts erwähnt , mit :git branch
git branch --unset-upstream
Andere Optionen:
Sie müssen Ihren lokalen Zweig nicht löschen.
Löschen Sie einfach den lokalen Zweig, der den Remote-Zweig verfolgt:
git branch -d -r origin/<remote branch name>
-r, --remotes
Weist Git an, den Remote-Tracking-Zweig zu löschen (dh den Zweig zu löschen, der zum Verfolgen des Remote-Zweigs festgelegt wurde). Dadurch wird der Zweig auf dem Remote-Repo nicht gelöscht !
Siehe "Es fällt mir schwer, Git-Fetch zu verstehen "
Es gibt kein solches Konzept für lokale Verfolgungszweige, sondern nur Fernverfolgungszweige.
So origin/master
ist ein Remote-Tracking-Zweig für master
im origin
Repo
Wie in den genannten Dobes Vandermeer ‚s Antwort , müssen Sie auch die Konfiguration der zugehörigen zurückgesetzt lokalen Niederlassung:
git config --unset branch.<branch>.remote
git config --unset branch.<branch>.merge
Entfernen Sie die Upstream-Informationen für <branchname>
.
Wenn kein Zweig angegeben ist, wird standardmäßig der aktuelle Zweig verwendet.
(Git 1.8+, Oktober 2012, Commit B84869e von Carlos Martín Nieto ( carlosmn
) )
Das macht jedes Drücken / Ziehen völlig unbewusst origin/<remote branch name>
.
remote.<name>.fetch
Refspec-Konfigurationseinstellung geschehen , aber ich bin nicht sicher, ob Sie einen Zweig ausschließen können, wenn Sie eine Refspec angeben.git branch -d -r origin/<remote branch name>
Löscht einen lokal deklarierten Remote-Tracking-Zweig in Ihrem Repo. Der Zweig auf dem Remote-Repo selbst wird nicht gelöscht (nur eingit push :development
würde dies tun). Wenn Sie also Ihr lokales Netzwerkdevelopment
mit einem anderen Verlauf als dem Remoteentwicklungszweig (auf dem Remote-Repo) pushen, wird weiterhin einenon-fast-forward
Warnung angezeigt.So entfernen Sie den Upstream für den aktuellen Zweig:
Dies ist für Git v.1.8.0 oder neuer verfügbar. (Quellen: 1.7.9 ref , 1.8.0 ref )
Quelle
quelle
git branch --unset-upstream [branchname]
fatal: 'origin/master' does not appear to be a git repository fatal: Could not read from remote repository.
danach und versuche einen Git Pull Origin / MasterSo entfernen Sie die Zuordnung zwischen dem lokalen und dem Remote-Zweiglauf:
Optional können Sie den lokalen Zweig anschließend löschen, wenn Sie ihn nicht benötigen:
Dadurch wird der Remote-Zweig nicht gelöscht.
quelle
git branch -d <branch>
ist nicht erforderlich, um die Zuordnung zu entfernen.git branch -vv
Sie immer noch die alten Zweige, bis Sie dies tungit branch -d <branch>
.git pull
können Sie alle Remote-Zweige abrufen und alle Zweige erneut hinzufügen, die auf der Remote "erschienen" sind. Sie können dieses Verhalten "Alle Zweige ziehen" ändern, indem Siegit config [--global] push.default simple
oder ausführengit config [--global] push.default current
. Mehr dazupush.default
hier .Der einfachste Weg ist das Bearbeiten
.git/config
Hier ist eine Beispieldatei
Löschen Sie die Zeile
merge = refs/heads/test1
imtest1
Zweigabschnittquelle
.git/config
ist ebenfalls verfügbar.Sie können den Remote-Tracking-Zweig mit löschen
wie VonC oben erwähnt. Wenn Sie jedoch Ihre lokale Kopie des Zweigs behalten,
git push
wird weiterhin versucht, diesen Zweig zu pushen (was zu einem Fehler beim nicht schnellen Vorlauf führen kann, wie dies bei Ruffin der Fall war ). Dies liegt daran, dass die Konfigurationpush.default
standardmäßig Folgendesmatching
bedeutet:(Siehe http://git-scm.com/docs/git-config unter
push.default
)Wahrscheinlich , da dies zu sehen , ist nicht das, was Sie wollten , wenn Sie die Fernverfolgung Zweig gelöscht, können Sie einstellen ,
push.default
aufupstream
(odertracking
wenn Sie git <1.7.4.3)mit
und git hört auf zu versuchen, Zweige zu pushen, die Sie "nicht mehr verfolgen".
Hinweis: Die einfachere Lösung besteht darin, Ihren lokalen Zweig einfach in einen anderen Zweig umzubenennen. Dies würde auch ein gewisses Verwirrungspotential beseitigen.
quelle
Hier ist ein Einzeiler zum Entfernen aller Fernverfolgungszweige, die einem Muster entsprechen:
git branch -rd $(git branch -a | grep '{pattern}' | cut -d'/' -f2-10 | xargs)
quelle
git branch -r -D $(git branch -r | grep -v "master")
Dies ist keine Antwort auf die Frage, aber ich konnte nicht herausfinden, wie man in einem Kommentar oben eine anständige Code-Formatierung erhält ... also hier ist mein Kommentar.
Ich habe das Rezept von @Dobes in einem ausgefallenen shmancy [alias] -Eintrag in meiner .gitconfig eingereicht:
Dann kann ich einfach rennen
quelle
git branch --unset-upstream
stoppt die Verfolgung aller lokalen Niederlassungen, was nicht wünschenswert ist.Entfernen Sie den
[branch "branch-name"]
Abschnitt aus der.git/config
Datei, gefolgt vongit branch -D 'branch-name' && git branch -D -r 'origin/branch-name'
funktioniert am besten für mich.
quelle
Auf diese Weise können Sie Ihren Remote-Zweig entfernen
quelle
Der einfachste Weg, dies zu tun, besteht darin, den Zweig aus der Ferne zu löschen und dann Folgendes zu verwenden:
git fetch --prune (auch bekannt als git fetch -p)
quelle