下面哪一行是正确的?
git checkout 'another_branch'
or
git checkout origin 'another_branch'
or
git checkout origin/'another_branch'
它们之间的区别是什么?
下面哪一行是正确的?
git checkout 'another_branch'
or
git checkout origin 'another_branch'
or
git checkout origin/'another_branch'
它们之间的区别是什么?
当前回答
切换到git中的另一个分支。直截了当的回答,
git-checkout -切换分支或恢复工作树文件
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
在切换分支之前,确保您没有任何修改过的文件,在这种情况下,您可以提交更改或保存它。
其他回答
切换到git中的另一个分支。直截了当的回答,
git-checkout -切换分支或恢复工作树文件
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
在切换分支之前,确保您没有任何修改过的文件,在这种情况下,您可以提交更改或保存它。
如果你想让分支跟踪远程分支,如果你要向分支提交更改和拉取更改等,这是非常重要的,你需要为实际的签出添加一个-t,如下所示: Git checkout -t branchname
检查:git分支-a
如果你只得到一个分支。然后执行以下步骤。
步骤1:git配置——list 步骤2:git配置——unset remote.origin.fetch 步骤3:git配置——添加remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
对我有效的方法如下:
切换到所需的分支:
git checkout -b BranchName
然后我把"大师"拉过来
git pull origin master
如果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。这就是从origin/another_branch创建another_branch,并将origin/another_branch设置为another_branch的上游。
如果两者都不存在,git checkout another_branch将返回错误。
Git签出源another_branch在大多数情况下返回错误。如果origin是一个修订版本,而another_branch是一个文件,那么它会检出该修订版本的文件,但这很可能不是您所期望的。Origin主要用于git fetch, git pull和git push中,作为远程存储库url的别名。
如果origin/another_branch存在,Git签出origin/another_branch成功。它导致处于分离的HEAD状态,而不是在任何分支上。如果您进行了新的提交,那么任何现有的分支都无法访问新的提交,并且任何分支都不会更新。
更新:
随着2.23.0的发布,我们也可以使用git switch来创建和切换分支。
如果存在foo,尝试切换到foo:
git switch foo
如果foo不存在,而origin/foo存在,尝试从origin/foo创建foo,然后切换到foo:
git switch -c foo origin/foo
# or simply
git switch foo
更一般地,如果foo不存在,尝试从已知的ref或commit创建foo,然后切换到foo:
git switch -c foo <ref>
git switch -c foo <commit>
If we maintain a repository in Gitlab and Github at the same time, the local repository may have two remotes, for example, origin for Gitlab and github for Github. In this case the repository has origin/foo and github/foo. git switch foo will complain fatal: invalid reference: foo, because it does not known from which ref, origin/foo or github/foo, to create foo. We need to specify it with git switch -c foo origin/foo or git switch -c foo github/foo according to the need. If we want to create branches from both remote branches, it's better to use distinguishing names for the new branches:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
如果foo存在,尝试从(或重置foo到)一个已知的ref重新创建/强制创建foo,然后切换到foo:
git switch -C foo <ref>
git switch -C foo <commit>
它们等价于:
git switch foo
git reset [<ref>|<commit>] --hard
尝试切换到一个已知ref或commit的分离HEAD:
git switch -d <ref>
git switch -d <commit>
如果你只是想创建一个分支,但不想切换到它,请使用git分支。尝试从已知的ref或commit创建一个分支:
git branch foo <ref>
git branch foo <commit>