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

时间:2017-12-04 10:11:49

标签: git github version-control gitlab git-checkout

这些行中哪一行是正确的?

git checkout 'another_branch'

git checkout origin 'another_branch'

git checkout origin/'another_branch'

这些行之间有什么区别?

12 个答案:

答案 0 :(得分:92)

如果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 fetchgit pullgit push作为远程数据库的远程存储库的别名。

如果git checkout origin/another_branch存在,

origin/another_branch会成功。它导致处于分离的HEAD状态,而不是任何分支。如果您进行新的提交,则无法从任何现有分支访问新提交,并且不会更新任何分支。

答案 1 :(得分:35)

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

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

{{1}}

在切换分支之前,请确保您没有任何已修改的文件,在这种情况下,您可以提交更改,也可以将其存储。

答案 2 :(得分:15)

在日常生活中有用的命令:

#define EIGEN_MATRIXBASE_PLUGIN "ChMatrixEigenExtensions.h"

如果您想从功能分支合并到开发人员, 首先使用命令“ git branch dev / develop ”检出dev分支 然后输入合并命令“ git merge featurebranchname

答案 3 :(得分:8)

[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']

答案 4 :(得分:6)

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

答案 5 :(得分:4)

对我有用的是:

  

切换到所需的分支:

git checkout -b BranchName
  

然后我将“主人”拉到:

git pull origin master

答案 6 :(得分:2)

检查: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/*

答案 7 :(得分:2)

如果您希望分支机构跟踪远程分支机构,这对于导入更改和提取更改等非常重要,那么您需要为实际结帐使用添加-t,例如: git checkout -t branchname

答案 8 :(得分:1)

我正在使用它来将一个分支切换到另一个分支,任何人都可以使用它,就像魅力一样对我有用。

git开关[branchName]或 git checkout [branchName]

例如:git switch开发OR
git checkout开发

答案 9 :(得分:0)

更改分支的最佳命令

git branch -M YOUR_BRANCH

答案 10 :(得分:0)

检查远程分支列表:

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

答案 11 :(得分:0)

要切换到包含更改的分支,您应该先执行 fetch。这是为了保存更改,例如您的 package.json.env 文件

所以:
git fetch

然后:
git checkout <new branch>

这个答案适用于那些像我一样卡住了一段时间的人。