下面哪一行是正确的?
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 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你可以使用“fetch”命令来做到这一点 ——[git获取来源'another_branch']
其他回答
检查远程分支列表:
git branch -a
切换到其他分支:
git checkout -b <local branch name> <Remote branch name>
Example: git checkout -b Dev_8.4 remotes/gerrit/Dev_8.4
查看本地分支机构列表:
git branch
所有的更新:
git pull
如果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>
要切换到一个分支与你的改变,你应该先做一个取回。这是为了像您的包一样保存更改。Json或。env文件
所以: git获取
然后: Git checkout <新分支>
这个答案是给那些被困住一段时间的人的,比如我。
[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你可以使用“fetch”命令来做到这一点 ——[git获取来源'another_branch']
我用这个来切换一个分支到另一个你可以使用它为我工作的魅力。
git开关[branch]或 git结帐[branch]
示例:git switch develop OR Git检查开发