如何在git中切换到另一个分支?

下面哪一行是正确的?

git checkout 'another_branch'

git checkout origin 'another_branch'

git checkout origin/'another_branch'

它们之间的区别是什么?

697838 次浏览

如果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 checkout origin another_branch在大多数情况下返回错误。如果origin是一个修订版本,而another_branch是一个文件,那么它会检出该修订版本的文件,但这很可能不是你所期望的。origin主要在git fetchgit pullgit push中用作远程,远程存储库url的别名。

如果origin/another_branch存在,则git checkout 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>

如果我们同时在Gitlab和Github中维护一个存储库,本地存储库可能有两个遥控器,例如,Gitlab的origin和Github的github。在这种情况下,存储库有origin/foogithub/foogit switch foo将报错fatal: invalid reference: foo,因为它不知道从哪个ref (origin/foogithub/foo)创建foo。我们需要根据需要使用git switch -c foo origin/foogithub0来指定它。如果我们想从两个远程分支创建分支,最好为新分支使用不同的名称:

git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo

如果foo存在,尝试从一个已知的ref(或将foo重置为)重新创建/强制创建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 branch代替。尝试从已知的ref或commit创建一个分支:

git branch foo <ref>
git branch foo <commit>

(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 fetch origin 'another_branch') < / p >

切换到git中的另一个分支。直截了当的回答,

git-checkout -切换分支或恢复工作树文件

git fetch origin         <----this will fetch the branch
git checkout branch_name <--- Switching the branch

在切换分支之前,确保您没有任何修改过的文件,在这种情况下,您可以提交更改或保存它。

检查:git branch -a

如果你只得到一个分支。然后执行以下步骤。

  • 步骤1:git config --list
  • 步骤2:git config --unset remote.origin.fetch
  • 步骤3:git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
如果你想让分支跟踪远程分支,如果你要向分支提交更改和拉取更改等,这是非常重要的,你需要为实际的签出添加-t,如下所示: git checkout -t branchname < / p >

Git 2.23开始,可以使用git switch <branch name>来切换分支。

对我有效的方法如下:

切换到所需的分支:

git checkout -b BranchName

然后我把"大师"拉过来

git pull origin master

我用这个来切换一个分支到另一个你可以使用它为我工作的魅力。

git switch [branchName] OR git checkout [branchName]

. sh [/p> .

ex: git switch develop OR
Git checkout development

日常工作中有用的命令:

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

如果你想从功能分支合并到dev, 首先用命令"Git分支dev/develop"检查dev分支; 然后输入merge命令"Git合并featurebranchname"

检查远程分支列表:

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

要切换到一个分支与你的改变,你应该先做一个取回。这是为了保存像你的< >强package.json < / >强或你的< >强.env < / >强文件这样的更改

< p >:
git fetch < / p > < p >,然后:
git checkout <new branch> < / p >

这个答案是给那些被困住一段时间的人的,比如我。

以下是我遵循的步骤:

  • Git克隆{link}
  • CD(回收文件夹)

你可以检查状态和你正在使用的分支:

  • git状态
  • git分支
  • Git分支-a

注意:在这里,如果您在迁移到新分支之前对本地回购进行了更改,那么以下步骤仍然有效。

如果“;git branch"显示master,你想创建+移动到另一个分支:

  • Git checkout -b{分支名称}

再次检查分支使用"git branch" 它现在应该显示您在新的分支中

现在添加、提交和推送:

  • Git添加。
  • Git commit -m "添加了新的分支;
  • Git推送源{分支名称}
以上步骤适用于我在移动到新的本地分支之前进行更改或移动到新分支后进行更改的情况。 我希望它能帮助遇到类似情况的人,它也是这里提到的问题的解决方案:链接

切换到git中的另一个分支可以用一个命令完成。

git switch branch-name