Warum nicht git erlauben Sie mir, um sicher zu löschen einer Filiale?

Brauchte ich zum Zusammenführen von zwei äste -- second in first und dann loswerden second. Hier ist, was ich getan habe:

  • git cloned das Projekt, um eine neue Kopie
  • git checkout --track origin/second, einige änderungen vorgenommen und begangen
  • git checkout --track origin/first, einige änderungen vorgenommen und begangen
  • git merge second (git sagt "merge made by recursive")
  • git branch -d second

Dann git sagt:

$ git branch -d second
warning: not deleting branch 'second' that is not yet merged to
         'refs/remotes/origin/second', even though it is merged to HEAD.
error: The branch 'second' is not fully merged.
If you are sure you want to delete it, run 'git branch -D second'.

Warum ist das passiert? Ich habe nie bekommen Sie diese Meldung nach einer Zusammenführung vor. Die Zusammenführung hat Prima funktioniert, keine Konflikte. Wie kann ich sicher löschen second Zweig?

  • git checkout second gefolgt von git push origin second macht git aufhören, zu jammern, aber ich verstehe nicht warum.
  • Eine wilde Vermutung, aber vielleicht git sich beschwert, dass Sie nicht geschoben second zu Herkunft, vor dem löschen es? Auch stellen Sie sicher, Sie sind nicht in »detached HEAD« - Zustand
  • ja, Sie scheinen Recht zu sein, aber warum sollte git egal, ob ich habe geschoben second?
  • Er will nicht, Sie zu verlieren, die lokalen änderungen, die nur zu einem remote-branch (Obwohl, ich habe noch nie gesehen, dass die Nachricht von mir). Ich werde Graben, um in die Quelle, um die Logik dahinter.
  • In diesem Fall, weiß er, dass second ist ein tracking-branch für origin/second, so will es wissen, dass änderungen auf second geschoben wurden, um origin. Wenn es nicht ein tracking-branch, glaube ich nicht, es würde beschweren sich über diese. Die Tatsache, dass second wurde zusammengeführt first lokal scheint nicht wichtig zu sein git an dieser Stelle, obwohl es scheint, Sie könnten, machen es wahrscheinlich der Fall, da es zumindest zusammengelegt worden in etwas anderes, das löschen der Zweig sollte akzeptabel sein.
  • Wenn Sie sicher sind, dass Sie alles, was Sie brauchen, von diesem Zweig können Sie mithilfe der option-D, um zu erzwingen, das löschen
  • was ist die Ausgabe von git branch --enthält Sekunde? Es bedeutet, dass der Zweig ist komplett zusammengeführt?
  • Leider, ich würde schon aus ein paar mehr änderungen, so war ich nicht in der Lage, um zu versuchen, dass.

InformationsquelleAutor Matt Fenwick | 2012-09-19
Schreibe einen Kommentar