Welche dieser Zeilen ist richtig?
git checkout 'another_branch'
Oder
git checkout origin 'another_branch'
Oder
git checkout origin/'another_branch'
git checkout 'another_branch'
Oder
git checkout origin 'another_branch'
Oder
git checkout origin/'another_branch'
Antworten:
Wenn es another_branchbereits lokal vorhanden ist und Sie sich nicht in diesem Zweig befinden, git checkout another_branchwechseln Sie zum Zweig.
Wenn another_branches nicht existiert, aber existiert origin/another_branch, git checkout another_branchist es äquivalent zu git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch. Das ist erstellen another_branchaus origin/another_branchund Set origin/another_branchals vor another_branch.
Wenn keines vorhanden ist, wird ein git checkout another_branchFehler zurückgegeben.
git checkout origin another_branchGibt in den meisten Fällen einen Fehler zurück. Wenn origines sich um eine Revision und another_brancheine Datei handelt, wird die Datei dieser Revision ausgecheckt, aber höchstwahrscheinlich ist dies nicht das, was Sie erwarten. originist vor allem in verwendet git fetch, git pullund git pushals Fernbedienung, ein Alias der URL zur Remote - Repository.
git checkout origin/another_brancherfolgreich, wenn origin/another_branchvorhanden. Es führt dazu, dass es sich in einem abgetrennten HEAD-Zustand befindet, nicht in einem Zweig. Wenn Sie neue Commits vornehmen, sind die neuen Commits von keinem vorhandenen Zweig aus erreichbar und keiner der Zweige wird aktualisiert.
UPDATE :
Da 2.23.0 veröffentlicht wurde, können wir damit auch git switchZweige erstellen und wechseln.
Wenn foovorhanden, versuchen Sie zu wechseln zu foo:
git switch foo
Wenn foonicht vorhanden ist und origin/foovorhanden ist , versuchen zu erstellen fooaus origin/foound wechseln Sie dann zu foo:
git switch -c foo origin/foo
# or simply
git switch foo
Wenn foodies nicht vorhanden ist, versuchen Sie im Allgemeinen, fooaus einem bekannten Verweis oder Commit zu erstellen , und wechseln Sie dann zu foo:
git switch -c foo <ref>
git switch -c foo <commit>
Wenn wir gleichzeitig ein Repository in Gitlab und Github verwalten, verfügt das lokale Repository möglicherweise über zwei Fernbedienungen, z. B. originfür Gitlab und githubfür Github. In diesem Fall hat das Repository origin/foound github/foo. git switch foowird sich beschweren fatal: invalid reference: foo, weil es nicht bekannt ist, aus welchem ref origin/foooder github/foozu erstellen foo. Wir müssen es mit git switch -c foo origin/foooder git switch -c foo github/foonach Bedarf spezifizieren . Wenn Sie Zweige aus beiden Remote-Zweigen erstellen möchten, ist es besser, unterscheidende Namen für die neuen Zweige zu verwenden:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
Wenn foovorhanden, versuchen Sie, eine bekannte Referenz oder ein Commit neu zu erstellen / zu erzwingen foo(oder auf diese zurückzusetzen foo) und wechseln Sie dann zu foo:
git switch -C foo <ref>
git switch -C foo <commit>
die gleichbedeutend sind mit:
git switch foo
git reset [<ref>|<commit>] --hard
Versuchen Sie, zu einem getrennten HEAD eines bekannten Refs oder Commits zu wechseln:
git switch -d <ref>
git switch -d <commit>
Wenn Sie nur einen Zweig erstellen möchten, aber nicht zu diesem wechseln möchten, verwenden Sie git branchstattdessen. Versuchen Sie, einen Zweig aus einem bekannten Verweis oder Commit zu erstellen:
git branch foo <ref>
git branch foo <commit>
git checkoutBefehl hat zu viele Dinge, meiner Meinung nach . Deshalb gibt es hier so viele Betriebsarten. Wenn das einzige , was git checkouttut , war Schalter Zweig, wäre die Antwort einfach sein, aber es kann auch schaffen Zweige und sogar Dateien aus bestimmten Commits extrahieren , ohne Zweig zu wechseln.
git switchzu einem Zweig wechseln.
git checkoutstattdessen für alte Versionen, die auch in modernen Versionen funktioniert.
Wechseln zu einem anderen Zweig in Git. Einfache Antwort,
git-checkout - Zweige wechseln oder Arbeitsbaumdateien wiederherstellen
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Stellen Sie vor dem Wechseln des Zweigs sicher, dass Sie keine geänderten Dateien haben. In diesem Fall können Sie die Änderungen festschreiben oder sie speichern.
[ git checkout "branch_name"]
ist eine andere Art zu sagen:
[ git checkout -b branch_name origin/branch_name]
falls "branch_name" nur remote existiert .
[ git checkout -b branch_name origin/branch_name] ist nützlich, wenn Sie mehrere Fernbedienungen haben.
In Bezug auf [ git checkout origin 'another_branch'] bin ich mir nicht sicher, ob dies möglich ist. AFAK Sie können dies mit dem Befehl "fetch" tun - [ git fetch origin 'another_branch']
Was für mich funktioniert hat, ist Folgendes:
Wechseln Sie in den gewünschten Zweig:
git checkout -b BranchName
Und dann zog ich den "Meister" vorbei:
git pull origin master
Nützliche Befehle für die Arbeit im täglichen Leben:
git checkout -b "branchname" -> creates new branch
git branch -> lists all branches
git checkout "branchname" -> switches to your branch
git push origin "branchname" -> Pushes to your branch
git add */filename -> Stages *(All files) or by given file name
git commit -m "commit message" -> Commits staged files
git push -> Pushes to your current branch
Wenn Sie möchten, dass der Zweig den Remote-Zweig verfolgt, was sehr wichtig ist, wenn Sie Änderungen am Zweig festschreiben und Änderungen usw. abrufen möchten, müssen Sie für die eigentliche Kaufabwicklung ein -t hinzufügen, z.
git checkout -t branchname
Prüfen : git branch -a
Wenn Sie nur einen Zweig bekommen. Führen Sie dann die folgenden Schritte aus.
git config --listgit config --unset remote.origin.fetch git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*depthParameter) erstellt haben und sich jetzt fragen, warum Sie keine anderen Remote-Zweige abrufen können, um error: pathspec 'another_branch' did not match any file(s) known to gitdie oben vorgeschlagenen Befehle zu erhalten. Es ist sicherlich nicht das, worum es bei der ursprünglichen Frage ging, aber es kann anderen helfen, sich hier am Kopf zu kratzen.
Ich benutze dies, um einen Zweig zu einem anderen zu wechseln. Jeder, den Sie verwenden können, funktioniert für mich wie ein Zauber.
git switch [branchName] ODER git checkout [branchName]
Beispiel: Git Switch entwickeln ODER
Git Checkout entwickeln
git checkout [branch]für die meisten Benutzer, die zu dieser Frage kommen