2011-09-12 24 views
1

我已经克隆一个Git仓库,我想从下面的列表切换到一个特定的分支(例如branch1, branch2, branch3如何切换到新的分支混帐

如果我不得不说git fetch origin branch2

如何知道我已切换到本地存储库上的此特定分支?

如何从'branch2'切换到'branch3'?

回答

4

最近的Git版本有足够的DWIM( “你明白我的意思!”)的逻辑来理解你只是在做:

git checkout branch1 

...在situtation。这将工作,如果没有名为branch1当地分支机构,并有唯一的一个以branch1结束远程跟踪分支 - 在这种情况下它相当于长:

git checkout --track -b branch1 origin/branch1 

...应在每一种情况工作。


我意识到我错过了回答你以后的一些问题。 git将origin存储库中的分支状态存储在所谓的“远程跟踪分支”中 - 这些是类似于origin/master,origin/branch1,origin/branch2等的分支。如果要从origin更新所有这些分支,请使用:

git fetch origin 

要查看所有的远程追踪分支,你可以使用:

git branch -r 

完整的命令的含义我上面引述:

git checkout --track -b branch1 origin/branch1 

...是:

  • 创建并切换到一个新的分支称为branch1(在checkout -b branch1位)
  • origin/branch1启动(即它的基础上,从originbranch1了最新的高速缓存的状态)
  • 和标记origin/branch1为在你的混帐配置(该--trackbranch1“上游”,但如果起点是远程跟踪分支,实际上隐含)
2

我假设你想切换到远程分支。如果你只是克隆回购那么就应该有一个默认的远程叫origin(您可以通过git remote -v查看远程回购

切换(或检出)的远程分支:git checkout -t origin/BRANCH_NAME - 此说,你想改变你的工作目录。内容到远程分支BRANCH_NAMEorigin指向的远程关联,这将创建一个名为“跟踪分支”的东西,它将设置一个本地分支来镜像远程分支。

要查看你正在键入的分支:git branch。要随时切换回主人只需做一个git checkout master