477 Stimmen

Git-Checkout: Aktualisieren von Pfaden ist nicht kompatibel mit dem Wechsel von Zweigen

Mein Problem bezieht sich auf Fataler Git-Fehler beim Wechsel des Zweigs .

Ich versuche, einen entfernten Zweig mit dem folgenden Befehl zu holen

git checkout -b local-name origin/remote-name

aber ich erhalte diese Fehlermeldung:

fatal: git checkout: Das Aktualisieren von Pfaden ist nicht kompatibel mit dem Wechseln von Zweigen.
Wollten Sie "origin/remote-name" auschecken, das nicht als Commit aufgelöst werden kann?

Wenn ich manuell einen Zweig erstelle und dann den entfernten Zweig ziehe, funktioniert das genauso wie das Erstellen eines neuen Klons und das Auschecken des Zweigs.

Warum funktioniert es bei dem Repository, mit dem ich arbeite, nicht?

1 Stimmen

Was hat sich seit der ersten Ausführung dieses Befehls (der die Fehlermeldung auslöste) geändert?

0 Stimmen

Git init git fetch git fetch git://blabla.com/dir1/Projekt.git

8voto

Matt Punkte 381

Bei mir hat das funktioniert:

git fetch

Dadurch werden alle Verweise für alle entfernten Zweige auf Ihren Rechner heruntergeladen. Dann könnte ich

git checkout <branchname>

und das hat perfekt funktioniert. Ähnlich wie die am häufigsten gewählte Antwort, aber ein wenig einfacher.

4voto

Don Branson Punkte 13410

Ich vermute, dass es keinen entfernten Zweig mit dem Namen remote-name gibt, sondern dass Sie versehentlich einen lokalen Zweig mit dem Namen origin/remote-name erstellt haben.

Ist es möglich, dass Sie irgendwann einmal getippt haben:

git branch origin/remote-name

Dadurch wird ein lokaler Zweig mit dem Namen origin/remote-name? Geben Sie diesen Befehl ein:

git checkout origin/remote-name

Sie werden es entweder sehen:

Switched to branch "origin/remote-name"

was bedeutet, dass es sich in Wirklichkeit um eine falsch benannte Ortsgruppe handelt, oder

Note: moving to "origin/rework-isscoring" which isn't a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
  git checkout -b 

was bedeutet, dass es sich tatsächlich um eine entfernte Verzweigung handelt.

3voto

Edward J Beckett Punkte 4891

Es ist nicht sehr intuitiv, aber für mich funktioniert das gut ...

  mkdir remote.git & cd remote.git & git init
  git remote add origin $REPO
  git fetch origin $BRANCH:refs/remotes/origin/$BRANCH        

DANN führen Sie den Befehl git branch --track aus ...

  git branch --track $BRANCH origin/$BRANCH

3voto

Thomas Punkte 7636

Bei mir hat sich ein Tippfehler eingeschlichen, und mein entfernter Zweig existierte nicht.

Utilice git branch -a um entfernte Zweige aufzulisten

1voto

VonC Punkte 1117238

Könnte Ihr Problem mit dieser anderen SO-Frage zusammenhängen? "Problem mit der Kasse" ?

d.h.: ein Problem im Zusammenhang mit:

  • eine alte Version von Git
  • eine merkwürdige Checkout-Syntax, die sein sollte: git checkout -b [<new_branch>] [<start_point>] , mit [<start_point>] auf den Namen einer Übertragung verweist, bei der der neue Zweig beginnen soll, und 'origin/remote-name' ist das nicht.
    (während git branch unterstützt einen start_point, der der Name eines entfernten Zweigs ist)

Anmerkung: was die Skript checkout.sh sagt, ist:

  if test '' != "$newbranch$force$merge"
  then
    die "git checkout: updating paths is incompatible with switching branches/forcing$hint"
  fi

Es ist, als ob die Syntax git checkout -b [] [remote_branch_name] sowohl den Zweig umbenannt als auch den neuen Startpunkt des neuen Zweigs zurückgesetzt hätte, was als inkompatibel angesehen wird.

0 Stimmen

Das Problem ist gelöst. git checkout -b local-name remote/remote-branch funktioniert tatsächlich

1 Stimmen

Interessant, was hat sich seit der ersten Ausführung dieses Befehls (der die Fehlermeldung auslöste) geändert?

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