459 Stimmen

Wie man den Fehler "nicht etwas, das wir zusammenführen können" von Git löst

Ich bin gerade auf ein Problem gestoßen, als ich einen Branch in den Master in git gemerged habe. Zuerst habe ich den Branch-Namen erhalten, indem ich git ls-remote ausgeführt habe. Nennen wir diesen Branch "Branch-Name". Anschließend habe ich den Befehl git merge branch-name ausgeführt und folgendes Ergebnis erhalten:

fatal: branch-name - nicht etwas, das wir mergen können

Wie löse ich diesen Fehler?

567voto

Brian Punkte 12582

Wie hier gezeigt wird, kann dieser Fehler aufgrund eines Tippfehlers im Branch-Namen auftreten, weil versucht wird, einen Branch zu ziehen, der nicht existiert.

Wenn das nicht das Problem ist (wie in meinem Fall), liegt es wahrscheinlich daran, dass Sie keine lokale Kopie des zu mergenden Branches haben. Git erfordert lokales Wissen über beide Branches, um diese zusammenzuführen. Sie können dies lösen, indem Sie den zu mergenden Branch auschecken und anschließend zum Branch zurückkehren, in den Sie mergen möchten.

git checkout branch-name
git checkout master
git merge branch-name

Dies sollte funktionieren, aber wenn Sie einen Fehler erhalten, der besagt

Fehler: Pfadangabe 'remote-name/branch-name' passt zu keiner bekannten Datei in git.

müssen Sie das Remote (wahrscheinlich, aber nicht unbedingt, "origin") abrufen, bevor Sie den Branch auschecken:

git fetch remote-name

162voto

endless Punkte 2947

Es ist ein alberner Vorschlag, aber achte darauf, dass es keinen Tippfehler im Zweignamen gibt!

100voto

Eneko Alonso Punkte 17508

Beim Pullen von einem entfernten Upstream hat git fetch --all bei mir funktioniert:

git remote add upstream [URL zum Original-Repo]
git checkout [zu aktualisierender Branch]
git fetch --all
git merge upstream/[zu aktualisierender Branch]

In anderen Fällen tritt der Fehler "Not something we can merge" auch auf, wenn der entfernte (origin, upstream) Branch nicht existiert. Das mag offensichtlich erscheinen, aber Sie könnten sich dabei erwischen, dass Sie auf einem Repo nur master haben und den Befehl git merge origin/develop ausführen.

37voto

spekulatius Punkte 1434

Ich hatte dieses Problem auch. Der Branch sah aus wie 'username/master', was Git zu verwirren schien, da es wie eine von mir definierte Remote-Adresse aussah. Für mich hat das Verwenden von

git merge origin/username/master

perfekt funktioniert.

31voto

R.N.V. Punkte 339

Die unten stehende Methode funktioniert für mich jedes Mal.

git checkout master
git pull
git checkout branch-name-to-be-merged
git pull
git checkout branch-name
git pull
git merge branch-name-to-be-merged

CodeJaeger.com

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.

Powered by:

X