Wenn Sie --squash your old_branch zusammenführen, wird diese Warnung immer angezeigt, wenn Sie sie lokal löschen. Wenn Squashing Ihr Index zurückgesetzt wird, stimmt daher nicht mit old_branch HEAd
Antoine Wils
Während die anderen Antworten richtig sind, war Antoines Kommentar zumindest in meinem Fall der Grund.
Squrppi
Antworten:
67
Dies warnt Sie nur davor, dass Änderungen in den Zweig verschoben originwurden, diese jedoch nicht zusammengeführt werden master, sodass Sie sie nur lokal löschen.
Es warnt Sie, dass Sie keine lokale Kopie dieses Zweigs mehr haben, diese jedoch in vorhanden ist origin
Wenn Sie auch den Remote-Zweig löschen möchten, verwenden Sie git push --delete origin old_branch
Ja, masterist daran nicht beteiligt. Sie meinen eher den aktuellen Zweig. ;)
Fernando Espinosa
1
Ich erhalte diese Warnung auch dann, wenn ich eine mache, git branch -d branch_namedie nur den Zweig lokal löschen soll. Warum ist die Warnung in diesem Fall erforderlich?
Akshay Damle
2
Origin / old_branch wird jedoch mit origin / master zusammengeführt. Später habe ich den Ursprung auf dem Hauptzweig gezogen. Immer noch der gleiche Fehler. Ist das nicht ein Fehler in GH?
Vikramvi
35
Angenommen, Sie haben gerade masterausgecheckt, bedeutet dies, dass die vorgenommenen Änderungen in old_branchnicht vorhanden sind master. Sie sind jedoch in old_branchon vorhanden origin.
Ja. Das ist die richtige Antwort! "aber noch nicht zusammengeführt mit HEAD", die HEADhier auf den HEAD der lokalen Hauptniederlassung verweisen.
Devy
3
Origin / old_branch wird jedoch mit origin / master zusammengeführt. Später habe ich den Ursprung auf dem Hauptzweig gezogen. Immer noch der gleiche Fehler. Ist das nicht ein Fehler in GH?
Vikramvi
1
@vikramvi Angenommen, Sie haben masterlokal ausgecheckt , kann es dennoch vorkommen, dass sich die SHA eines der Commits geändert hat. dh du bist origin/old_branchauf Basis origin/master. Selbst wenn es sich um einen schnellen Vorlauf handelte, wird für jedes neue Commit von ein neuer SHA generiert origin/old_branch, sodass git die ursprünglichen old_branchSHAs in Ihrem lokalen Bereich als nicht zusammengeführt ansieht, nachdem die Änderungen in Ihren lokalen masterZweig übernommen wurden. Sie können diese Antwort und diese Antwort sehen, warum dies auftritt.
7
Um die anderen Antworten zu ergänzen, kann dies auch bedeuten, dass die Änderung möglicherweise mit dem Master zusammengeführt wird, nur dass Ihre lokale Kopie des Masters dies noch nicht widerspiegelt. In beiden Fällen werden Sie lediglich darüber informiert, dass die lokale Kopie Ihres Masters nicht die Änderungen enthält, die Sie am Ursprung vorgenommen haben. Zusammengeführt / Nicht zusammengeführt ... vielleicht, vielleicht nicht
Dies bedeutet, dass Ihre lokale Filiale old_branchmit der Remote-Filiale old_branchauf der Remote-Filiale auf dem neuesten Stand originist, jedoch nicht mit der Filiale zusammengeführt masterwird, die als Hauptfiliale im Repo betrachtet wird.
Es ist nur eine Vorsichtsmaßnahme von git. Es gibt Ihnen einen Hinweis: Vielleicht haben Sie Ihre Arbeit in der Themenbranche erledigt und vergessen, sie mit der Hauptbranche zusammenzuführen?
aktualisieren
Git warnt Sie davor, Ihre Änderungen zu verlieren. Wenn Sie beispielsweise Ihren nicht old_branchauf dem Master-Git haben, können Sie nicht einmal einen Zweig löschen, der nicht mit dem Master verknüpft ist (nun, es ist zulässig, aber mit dem Schlüssel, -Dder istforce-delete Option ist).
Das -D ist also, wenn Sie den zu löschenden Zweig (wirklich Commits) nicht mit einem Remote-Zweig geteilt haben. Die Warnung soll Sie zwar darüber informieren, dass Sie den Zweig (Commits) für die Fernbedienung freigegeben haben, dieser jedoch nicht mit HEAD zusammengeführt wird. HEAD ist HEAD, remote / refs / HEAD ist nicht dasselbe. Aber bitte korrigieren Sie mich, wenn ich mich hinsichtlich der Unterschiede zwischen Remote-HEAD und lokalem HEAD irre.
Antworten:
Dies warnt Sie nur davor, dass Änderungen in den Zweig verschoben
origin
wurden, diese jedoch nicht zusammengeführt werdenmaster
, sodass Sie sie nur lokal löschen.Es warnt Sie, dass Sie keine lokale Kopie dieses Zweigs mehr haben, diese jedoch in vorhanden ist
origin
Wenn Sie auch den Remote-Zweig löschen möchten, verwenden Sie
git push --delete origin old_branch
quelle
master
ist daran nicht beteiligt. Sie meinen eher den aktuellen Zweig.;)
git branch -d branch_name
die nur den Zweig lokal löschen soll. Warum ist die Warnung in diesem Fall erforderlich?Angenommen, Sie haben gerade
master
ausgecheckt, bedeutet dies, dass die vorgenommenen Änderungen inold_branch
nicht vorhanden sindmaster
. Sie sind jedoch inold_branch
on vorhandenorigin
.quelle
HEAD
", dieHEAD
hier auf den HEAD der lokalen Hauptniederlassung verweisen.master
lokal ausgecheckt , kann es dennoch vorkommen, dass sich die SHA eines der Commits geändert hat. dh du bistorigin/old_branch
auf Basisorigin/master
. Selbst wenn es sich um einen schnellen Vorlauf handelte, wird für jedes neue Commit von ein neuer SHA generiertorigin/old_branch
, sodass git die ursprünglichenold_branch
SHAs in Ihrem lokalen Bereich als nicht zusammengeführt ansieht, nachdem die Änderungen in Ihren lokalenmaster
Zweig übernommen wurden. Sie können diese Antwort und diese Antwort sehen, warum dies auftritt.Um die anderen Antworten zu ergänzen, kann dies auch bedeuten, dass die Änderung möglicherweise mit dem Master zusammengeführt wird, nur dass Ihre lokale Kopie des Masters dies noch nicht widerspiegelt. In beiden Fällen werden Sie lediglich darüber informiert, dass die lokale Kopie Ihres Masters nicht die Änderungen enthält, die Sie am Ursprung vorgenommen haben. Zusammengeführt / Nicht zusammengeführt ... vielleicht, vielleicht nicht
quelle
Dies bedeutet, dass Ihre lokale Filiale
old_branch
mit der Remote-Filialeold_branch
auf der Remote-Filiale auf dem neuesten Standorigin
ist, jedoch nicht mit der Filiale zusammengeführtmaster
wird, die als Hauptfiliale im Repo betrachtet wird.Es ist nur eine Vorsichtsmaßnahme von git. Es gibt Ihnen einen Hinweis: Vielleicht haben Sie Ihre Arbeit in der Themenbranche erledigt und vergessen, sie mit der Hauptbranche zusammenzuführen?
aktualisieren
Git warnt Sie davor, Ihre Änderungen zu verlieren. Wenn Sie beispielsweise Ihren nicht
old_branch
auf dem Master-Git haben, können Sie nicht einmal einen Zweig löschen, der nicht mit dem Master verknüpft ist (nun, es ist zulässig, aber mit dem Schlüssel,-D
der istforce-delete
Option ist).quelle
master
, aber der StromHEAD
.