如何git checkout一个名为与目录相同的远程分支?

时间:2013-05-17 13:10:16

标签: git branch

我们有一个名为deploy的远程分支,用于构建和测试部署脚本。毫不奇怪,部署脚本最终位于名为deploy的目录中。既然目录deploy在分支master中,那么在进行初始克隆时,实际检查该分支是很麻烦的。

$ git clone bitbucket.org:/myplace/mything
$ cd mything
$ ls
deploy          extensions      installExtensions   src         tests
$ git branch -r | grep dep
  origin/deploy
$ git checkout deploy
$ git branch
* master
$ git checkout origin/deploy
Note: checking out 'origin/deploy'.

You are in 'detached HEAD' state. [SNIP]

此时我应该创建一个名为deploy的本地分支并将其设置为跟踪远程?是否有任何语法我可以给git所以它知道我想要签出远程分支,而不是本地路径?

2 个答案:

答案 0 :(得分:10)

您可以使用以下任一命令创建一个指向远程分支的新本地分支(后者将立即将其检出):

git branch deploy origin/deploy
git checkout -b deploy origin/deploy

然而,这将不会设置当Git自动为远程分支创建分支时发生的跟踪功能。为此,您必须执行以下操作:

git branch -u origin/deploy

作为替代方案,您可以在一个命令中完成所有操作,这与Git自动执行的操作相同:

git checkout -b deploy --track origin/deploy

答案 1 :(得分:3)

我的解决方法是

git checkout deploy --