GIT divergent branches

Hendoul

Commander
Registriert
Apr. 2008
Beiträge
2.049
Hi :)

Seit ich ein neues MacBook habe und alles frisch installieren musste habe ich neuerdings Probleme beim Aktualisieren von lokalen Branches mit dem remote master.

Fall:
Ich nutze eigentlich git nur noch via IntelliJ und nicht mehr in der Shell.
Ich befinde mich auf dem master branch 'develop' genannt. Diesen kann ich via git pull ohne Fehlermeldung aktualisieren. Dann erstelle ich von diesem weg einen lokalen Branch xyz.
Dann mache ich dort ein paar Änderungen, commite und pushe den Branch aufs remote repository. Auch das geht ohne Fehlermeldung einher.

Jetzt. möchte ich meinen lokalen Branch mal mit dem master aktualisieren und führe dazu wieder einen git pull durch. Also sowas wie 'git pull origin develop'. Das schlägt aber in IntelliJ und auch der Kommandozeile mit dieser Fehlermeldung fehl:


1665648353487.png


Das Problem kann ich mit dem Flag --no-ff lösen. Aber ich hatte dieses Problem zuvor nicht und mich würde interessieren was es überhaupt genau bedeutet und wie es immer dazu kommt. Denn es passiert jedesmal wenn ich mit dem master/develop aktualisieren möchte.

Ich hatte zuvor auch kein flag in der gitconfig die nun ja neu angelegt wurde.
 
Hendoul schrieb:
Jetzt. möchte ich meinen lokalen Branch mal mit dem master aktualisieren und führe dazu wieder einen git pull durch. Also sowas wie 'git pull origin develop'.
Meinst du die Änderungen vom master Branch auf deinen lokalen übertragen?

Dann eher erst checkout master und dann deinen aktuellen auschecken, und dann rebasen/mergen:
https://superuser.com/questions/224085/git-merge-master-into-a-branch

Was es bedeutet?
Du musst spezifizieren wie dein aktueller Branch bei einem pull mit impliziter statt statt expliziter Durchführung aktualisiert werden soll.
 
Zuletzt bearbeitet:
in der Fehlermeldung steht doch genau was du machen musst. Du musst einmal pro repo (oder eben einmal global) setzen, auf welche Art du den branch pullen willst. Ließ Dir mal in der Doku durch wie die drei Methoden sich unterscheiden und wähle deinen Favoriten.
 
Wie geschrieben, mich würde interessieren wie es dazu kommt. Da wie gesagt ich zuvor auch nicht irgendwas global eingestellt habe.

@KitKat::new() ein pull macht ein rebase/merge.
 
Empfehlung unabhängig vom git pull Verhalten (was eben einmal festgelegt werden sollte wie schon geschrieben und meiner Meinung schon seit langer Zeit kommt wenn man ein pull auf einen anderen Branch macht): Einfach expliziter sein und entweder git merge origin/master oder git rebase origin/master schreiben. Ich finde die Benutzung von git pull auf andere Branches schon immer seltsam... ist aber vielleicht was persönliches
 
  • Gefällt mir
Reaktionen: Bitopium
Hendoul schrieb:
Wie geschrieben, mich würde interessieren wie es dazu kommt. Da wie gesagt ich zuvor auch nicht irgendwas global eingestellt habe.

@KitKat::new() ein pull macht ein rebase/merge.
Das wurde ab irgendeiner Version von Git hinzugefuegt. Vermutlich hast du vorher eine aeltere Version genutzt.
 
Früher hat git einfach "merge" gemacht als default ohne zu fragen. Neuere git Versionen zwingen dich eine Entscheidung hier zu treffen ob du "merge" oder "rebase" beim pullen machen willst.
 
Hendoul schrieb:
Ich nutze eigentlich git nur noch via IntelliJ und nicht mehr in der Shell.
So sehr wie ich JetBrains mag, aber deren GUI-Git-Implementation ist teils nicht sehr intuitiv bis fehleranfällig.
 
Zurück
Oben