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_branch
bereits lokal vorhanden ist und Sie sich nicht in diesem Zweig befinden, git checkout another_branch
wechseln Sie zum Zweig.
Wenn another_branch
es nicht existiert, aber existiert origin/another_branch
, git checkout another_branch
ist es äquivalent zu git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. Das ist erstellen another_branch
aus origin/another_branch
und Set origin/another_branch
als vor another_branch
.
Wenn keines vorhanden ist, wird ein git checkout another_branch
Fehler zurückgegeben.
git checkout origin another_branch
Gibt in den meisten Fällen einen Fehler zurück. Wenn origin
es sich um eine Revision und another_branch
eine Datei handelt, wird die Datei dieser Revision ausgecheckt, aber höchstwahrscheinlich ist dies nicht das, was Sie erwarten. origin
ist vor allem in verwendet git fetch
, git pull
und git push
als Fernbedienung, ein Alias der URL zur Remote - Repository.
git checkout origin/another_branch
erfolgreich, wenn origin/another_branch
vorhanden. 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 switch
Zweige erstellen und wechseln.
Wenn foo
vorhanden, versuchen Sie zu wechseln zu foo
:
git switch foo
Wenn foo
nicht vorhanden ist und origin/foo
vorhanden ist , versuchen zu erstellen foo
aus origin/foo
und wechseln Sie dann zu foo
:
git switch -c foo origin/foo
# or simply
git switch foo
Wenn foo
dies nicht vorhanden ist, versuchen Sie im Allgemeinen, foo
aus 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. origin
für Gitlab und github
für Github. In diesem Fall hat das Repository origin/foo
und github/foo
. git switch foo
wird sich beschweren fatal: invalid reference: foo
, weil es nicht bekannt ist, aus welchem ref origin/foo
oder github/foo
zu erstellen foo
. Wir müssen es mit git switch -c foo origin/foo
oder git switch -c foo github/foo
nach 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 foo
vorhanden, 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 branch
stattdessen. Versuchen Sie, einen Zweig aus einem bekannten Verweis oder Commit zu erstellen:
git branch foo <ref>
git branch foo <commit>
git checkout
Befehl hat zu viele Dinge, meiner Meinung nach . Deshalb gibt es hier so viele Betriebsarten. Wenn das einzige , was git checkout
tut , 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 switch
zu einem Zweig wechseln.
git checkout
stattdessen 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 --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
Parameter) 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 git
die 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