以下哪条线是正确的?
git checkout 'another_branch'
要么
git checkout origin 'another_branch'
要么
git checkout origin/'another_branch'
git checkout 'another_branch'
要么
git checkout origin 'another_branch'
要么
git checkout origin/'another_branch'
Answers:
如果another_branch
本地已经存在,并且您不在此分支上,则git checkout another_branch
切换到该分支。
如果another_branch
不存在而是origin/another_branch
存在,则git checkout another_branch
相当于git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
。这是创建another_branch
从origin/another_branch
和集origin/another_branch
为一体的上游another_branch
。
如果都不存在,则git checkout another_branch
返回错误。
git checkout origin another_branch
在大多数情况下会返回错误。如果origin
是修订版本并且another_branch
是文件,则它将签出该修订版本的文件,但很可能不是您所期望的。origin
在主要使用git fetch
,git pull
并git push
作为远程链接到远程存储库的一个别名。
git checkout origin/another_branch
成功(如果origin/another_branch
存在)。它导致处于分离的HEAD状态,而不是在任何分支上。如果进行新的提交,则任何现有分支都无法访问新的提交,并且不会更新任何分支。
更新:
随着2.23.0版本的发布,我们也可以使用它git switch
来创建和切换分支。
如果foo
存在,请尝试切换到foo
:
git switch foo
如果foo
不存在,origin/foo
存在,尝试创建foo
从origin/foo
,然后切换到foo
:
git switch -c foo origin/foo
# or simply
git switch foo
通常,如果foo
不存在,请尝试foo
从已知的ref或commit 创建,然后切换到foo
:
git switch -c foo <ref>
git switch -c foo <commit>
如果我们同时在Gitlab和Github中维护一个存储库,则本地存储库可能有两个远程服务器,例如,origin
用于Gitlab和github
Github的远程服务器。在这种情况下,存储库具有origin/foo
和github/foo
。git switch foo
会抱怨fatal: invalid reference: foo
,因为它不知道从哪个裁判,origin/foo
或者github/foo
,创造foo
。我们需要与指定它git switch -c foo origin/foo
或git switch -c foo github/foo
根据需要。如果要从两个远程分支创建分支,最好为新分支使用可区分的名称:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
如果foo
存在,请尝试foo
从foo
已知的ref或commit 重新创建/强制创建(或重置为),然后切换到foo
:
git switch -C foo <ref>
git switch -C foo <commit>
等效于:
git switch foo
git reset [<ref>|<commit>] --hard
尝试切换到已知引用或提交的分离HEAD:
git switch -d <ref>
git switch -d <commit>
如果您只想创建一个分支但不切换到该分支,请git branch
改用。尝试从已知的引用或提交创建分支:
git branch foo <ref>
git branch foo <commit>
git checkout
我认为该命令执行了太多操作。这就是为什么这里有这么多种操作模式的原因。如果唯一要做的git checkout
就是切换分支,答案很简单,但它也可以创建分支,甚至可以从特定提交中提取文件而无需切换分支。
git switch
切换到分支。
git checkout
代替用于旧版本,它也适用于现代版本。
切换到git中的另一个分支。简单的答案,
git-checkout-切换分支或还原工作树文件
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
在切换分支之前,请确保您没有任何修改的文件,在这种情况下,您可以提交更改或隐藏它们。
[ git checkout "branch_name"
]
是另一种说法:
[ git checkout -b branch_name origin/branch_name
]
万一“ branch_name” 仅在远程存在。
git checkout -b branch_name origin/branch_name
如果有多个遥控器,[ ]很有用。
关于[ git checkout origin 'another_branch'
]我不确定这是否可行,AFAK您可以使用“提取”命令-[ git fetch origin 'another_branch'
]
在日常生活中有用的命令:
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
如果您希望分支机构跟踪远程分支机构(如果您要向分支机构提交更改并提取更改等信息,则非常重要),则需要为实际签出使用添加-t,例如:
git checkout -t branchname
检查: git branch -a
如果只得到一个分支。然后执行以下步骤。
git config --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
参数)并且现在想知道为什么无法error: pathspec 'another_branch' did not match any file(s) known to git
使用上面建议的命令获取另一个远程分支时,这样做可能很有用。这当然不是最初的问题是什么,但是它可以帮助其他人在这里挠头。
我正在使用它将一个分支切换到另一个分支,任何人都可以使用它,就像魅力一样对我有用。
git switch [branchName]或git checkout [branchName]
例如:git switch开发或
git checkout开发
git checkout [branch]
对于大多数遇到此问题的用户