GIT: Ich muss meinen neuen Zweig ständig zusammenführen

1326
mnml

Ich habe einen neuen Zweig erstellt und arbeite daran mit anderen Entwicklern, aber aus Gründen, aus denen ich meine neuen Commits verschieben möchte, muss ich immer zu. git merge origin/mynewbranch Ansonsten bekomme ich einige Fehler:

 ! [rejected] mynewbranch -> mynewbranch (non-fast-forward) error: failed to push some refs to 'git@site.com/repo.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details. 

You asked me to pull without telling me which branch you want to merge with, and 'branch.mynewbranch.merge' in your configuration file does not tell me, either. Please specify which branch you want to use on the command line and try again (e.g. 'git pull <repository> <refspec>'). See git-pull(1) for details.  If you often merge with the same branch, you may want to use something like the following in your configuration file:  [branch "mynewbranch"] remote = <nickname> merge = <remote-ref>  [remote "<nickname>"] url = <url> fetch = <refspec>  See git-config(1) for details. 

Warum ist es nicht automatisch?

Vielen Dank

1
Haben Sie die Dokumentation gelesen, auf die Sie hingewiesen wurden? Wenn ja, könnten Sie sagen, worauf Sie genau eingehen müssen? Benjamin Bannier vor 13 Jahren 0
Nun, ich habe mich nur gefragt, warum es nicht mehr automatisch verschmilzt, nur um zu wissen, was ich falsch gemacht habe. mnml vor 13 Jahren 0

1 Antwort auf die Frage

2
VonC

Sie haben an sich nichts falsch gemacht, aber wenn der entfernte Zweig von anderen Entwicklern aktualisiert (Push-to) wird, wird Ihr eigener Beitrag (Push) nicht direkt akzeptiert.

git push(Abschnitt "Hinweis zum Schnellvorlauf") erwähnt :

Sie können " git pull" Konflikte ausführen und git pushdas Ergebnis " " lösen . Ein " git pull" erstellt ein Zusammenführungs-Commit C zwischen den Commits A und B.

Alternativ können Sie Ihre Änderung zwischen X und B über A mit " git pull --rebase" erneut stützen und das Ergebnis zurückschieben. Die Basis erstellt ein neues Commit D, das die Änderung zwischen X und B über A aufbaut.

Siehe auch " Ich bin nicht in der Lage, Git zu treiben ".

Bei einer Rebase wird mein Zweig entfernt, sobald er fertig ist. Oder wird es nur mit den Änderungen der Hauptbranche aktualisiert? mnml vor 13 Jahren 0
@mnml: Eine Rebase bedeutet, dass Ihr Zweig oben auf dem Abruf abgespielt wird: Ihr Zweig wird dadurch nicht entfernt. VonC vor 13 Jahren 1
Ist es möglich, den Master auf der neuen Niederlassung neu zu erstellen? mnml vor 13 Jahren 0
@mnml: da master oft push ist, ist dies nicht ratsam. Normalerweise widerlegt man seinen Zweig auf dem Master ("git checkout mybranch; git rebase master"). VonC vor 13 Jahren 0