Wenn ich das tue git fetch origin
und der Ursprung einen gelöschten Zweig hat, scheint er in meinem Repository nicht aktualisiert zu werden. Wenn ich git branch -r
es zeigt immer noch origin/DELETED_BRANCH
.
Wie kann ich das beheben?
Wenn ich das tue git fetch origin
und der Ursprung einen gelöschten Zweig hat, scheint er in meinem Repository nicht aktualisiert zu werden. Wenn ich git branch -r
es zeigt immer noch origin/DELETED_BRANCH
.
Wie kann ich das beheben?
Aus irgendeinem Grund hat Ihr Befehl nicht funktioniert, aber dieser für einen nicht existierenden entfernten Zweig in meinem origin
Gabelung: git fetch -p origin
Als ich dann die git branch -r
der nicht existierende entfernte Zweig wurde nicht mehr angezeigt.
@oldfartdeveloper Welche Version verwenden Sie? Ich bin auf git version 1.8.2.1
. Machen Sie eine git --version
um es herauszufinden.
Desde http://www.gitguys.com/topics/adding-and-removing-remote-branches/
Nachdem jemand einen Branch aus einem entfernten Repository gelöscht hat, wird git nicht nicht automatisch die Zweige des lokalen Repositorys löschen, wenn ein Benutzer einen git pull oder git fetch ausführt. Möchte der Benutzer jedoch, dass alle Zweige, die in einem entfernten Repository gelöscht wurden, aus dem lokalen Repository die in einem entfernten Repository gelöscht wurden, kann er dies eingeben:
git remote prune origin
Übrigens, der Parameter -p von git fetch -p
bedeutet eigentlich "Pflaume".
In beiden Fällen werden die nicht vorhandenen entfernten Zweige aus Ihrem lokalen Repository gelöscht.
Sie müssen Folgendes tun
git fetch -p
um Ihre Zweigstellenliste zu synchronisieren. Die Website Git-Handbuch sagt
-p
,--prune
Entfernen Sie nach dem Abruf alle Remote-Tracking-Verweise, die auf der Gegenstelle nicht mehr existieren. Tags unterliegen nicht dem Pruning, wenn sie nur aufgrund des standardmäßigen Tag-Autofollowings oder aufgrund eines--tags
Option. Wenn jedoch Tags aufgrund einer expliziten refspec geholt werden (entweder auf der Befehlszeile oder in der Fernwartungskonfiguration, zum Beispiel wenn die Fernwartung mit der Option--mirror
Option), dann werden sie auch beschnitten.
Ich persönlich verwende gerne git fetch origin -p --progress
weil sie eine Fortschrittsanzeige enthält.
Betreffend git fetch -p
Das Verhalten wurde in Git 1.9 geändert, und nur Git 2.9.x/2.10 spiegelt dies wider.
参照 Commit 9e70233 (13. Juni 2016) von Jeff King ( peff
) .
(Zusammengefasst von Junio C. Hamano -- gitster
-- in Commit 1c22105 , 06. Juli 2016)
fetch
Dokumentieren, dass die Beschneidung erfolgt vor Abrufen vonDies wurde geändert in 10a6cc8 (
fetch --prune
: Run prune before fetching, 2014-01-02), aber es scheint, dass niemand in dieser Diskussion erkannte, dass wir das "after" explizit ankündigten.
In der Dokumentation heißt es nun:
Vor abrufen, entfernen Sie alle Remote-Tracking-Referenzen, die nicht mehr auf der entfernten Seite existieren
Der Grund dafür ist:
Wenn wir einen Remote-Tracking-Zweig mit dem Namen "
frotz/nitfol
" aus einem früheren Fetch, und der Upstream hat jetzt einen Zweig namens "frotz
", würde fetch beim Entfernen von "frotz/nitfol
" mit einem "git fetch --prune
" aus dem Upstream. git würde den Benutzer darüber informieren, dass er "git remote prune
", um das Problem zu beheben.Die Art und Weise ändern "
fetch --prune
" funktioniert, indem es den Beschneidungsvorgang vor den Abrufvorgang verschiebt. Auf diese Weise wird der Benutzer nicht vor einem Konflikt gewarnt, sondern der Konflikt wird automatisch behoben.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
4 Stimmen
Mögliche Duplikate von git-Fernverzweigung gelöscht, erscheint aber noch in 'branch -a'