git checkout 'another_branch'
oder
git checkout Origin 'another_branch'
oder
git checkout Origin/'another_branch'
Wenn another_branch
bereits lokal vorhanden ist und Sie sich nicht in diesem Zweig befinden, wechselt git checkout another_branch
zum Zweig.
Wenn another_branch
nicht existiert, aber Origin/another_branch
existiert, dann entspricht git checkout another_branch
git checkout -b another_branch Origin/another_branch; git branch -u Origin/another_branch
. Das ist, um another_branch
aus Origin/another_branch
zu erstellen und Origin/another_branch
als Upstream von another_branch
festzulegen.
Ist beides nicht vorhanden, gibt git checkout another_branch
einen Fehler zurück.
git checkout Origin another_branch
gibt in den meisten Fällen einen Fehler zurück. Wenn Origin
eine Revision und another_branch
eine Datei ist, wird die Datei dieser Revision ausgecheckt, aber höchstwahrscheinlich ist das nicht das, was Sie erwarten. Origin
wird hauptsächlich in git fetch
, git pull
und git Push
als Remote verwendet, als Alias der URL zum Remote-Repository.
git checkout Origin/another_branch
ist erfolgreich, wenn Origin/another_branch
vorhanden ist. Es führt dazu, dass es sich in einem getrennten HEAD Zustand befindet, nicht in einem Zweig. Wenn Sie neue Festschreibungen vornehmen, können die neuen Festschreibungen nicht von vorhandenen Zweigen aus erreicht werden, und keiner der Zweige wird aktualisiert.
UPDATE:
Da 2.23.0 veröffentlicht wurde, können wir damit auch git switch
verwenden, um Zweige zu erstellen und zu wechseln.
Wenn foo
vorhanden ist, versuchen Sie, zu foo
zu wechseln:
git switch foo
Wenn foo
nicht existiert und Origin/foo
existiert, versuchen Sie, foo
aus Origin/foo
zu erstellen, und wechseln Sie dann zu foo
:
git switch -c foo Origin/foo
# or simply
git switch foo
Wenn foo
nicht vorhanden ist, versuchen Sie im Allgemeinen, foo
aus einer bekannten Referenz oder einem Commit zu erstellen, und wechseln Sie dann zu foo
:
git switch -c foo <ref>
git switch -c foo <commit>
Wenn wir ein Repository in Gitlab und Github gleichzeitig verwalten, verfügt das lokale Repository möglicherweise über zwei Remotes, 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
beschwert sich über fatal: invalid reference: foo
, da nicht bekannt ist, aus welchem Verweis, Origin/foo
oder github/foo
, foo
zu erstellen ist. Wir müssen es je nach Bedarf mit git switch -c foo Origin/foo
oder git switch -c foo github/foo
spezifizieren. Wenn wir Zweige aus beiden entfernten 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 ist, versuchen Sie, foo
von einem bekannten Verweis oder Commit neu zu erstellen/zu erzwingen (oder foo
auf zurückzusetzen), und wechseln Sie dann zu foo
:
git switch -C foo <ref>
git switch -C foo <commit>
die äquivalent sind zu:
git switch foo
git reset [<ref>|<commit>] --hard
Versuchen Sie, zu einem getrennten HEAD eines bekannten Verweises oder Commits zu wechseln:
git switch -d <ref>
git switch -d <commit>
Wenn Sie nur einen Zweig erstellen, aber nicht zu diesem wechseln möchten, verwenden Sie stattdessen git branch
. Versuchen Sie, eine Verzweigung aus einem bekannten Verweis oder Commit zu erstellen:
git branch foo <ref>
git branch foo <commit>
Wechseln zu einem anderen Zweig in Git. Klare Antwort,
git-checkout - Wechselt zwischen Zweigen oder stellt funktionierende Baumdateien wieder her
git fetch Origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Vergewissern Sie sich vor dem Wechseln des Zweigs, dass keine geänderten Dateien vorhanden sind. In diesem Fall können Sie die Änderungen festschreiben oder speichern.
[git checkout "branch_name"
]
ist eine andere Art zu sagen:
[git checkout -b branch_name Origin/branch_name
]
falls "branch_name" existiert nur remote.
[git checkout -b branch_name Origin/branch_name
] ist nützlich, wenn Sie mehrere Fernbedienungen haben.
Bezüglich [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'
]
Überprüfen Sie: git branch -a
Wenn Sie nur einen Zweig erhalten. 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/*
Wenn die Verzweigung die entfernte Verzweigung verfolgen soll, was sehr wichtig ist, wenn Sie Änderungen an der Verzweigung vornehmen und Änderungen usw. abrufen möchten, müssen Sie für die eigentliche Prüfung ein -t hinzufügen, z. B .: git checkout -t branchname
Ab Git 2.2 kann mit git switch <branch name>
zwischen Zweigen gewechselt werden.