从远程仓库提取分支并在本地新建一个分支[转]


来自scmlife.com
git clone默认会把远程仓库整个给clone下来1 V+ q* C3 |% g" t2 v# ~8 ?3 C7 ]
但只会在本地默认创建一个master分支
如果远程还有其他的分支,此时用git branch -a查看所有分支:
  1. * master   
  2. remotes/origin/HEAD -> origin/master   
  3. remotes/origin/master   $ g- D2 q6 }  r. A1 L: S8 c
  4. remotes/origin/python_mail.skin   
  5. remotes/origin/udisk   
  6. remotes/origin/vip
复制代码
能看到远程的所有的分支,如remotes/origin/python_mail.skin
可以使用checkout命令来把远程分支取到本地,并自动建立tracking
  1. $ git checkout -b python_mail.skin origin/python_mail.skin9 e* g8 u3 Z% c. z' A* c& n
  2. Branch python_mail.skin set up to track remote branch python_mail.skin from origin.
  3. Switched to a new branch 'python_mail.skin'
复制代码
或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支( \5 k9 u7 Y, M# p# P3 q
折叠展开复制代码
  1. $ git checkout -t origin/python_mail.skin
复制代码
也可以使用fetch来做:
  1. $ git fetch origin python_mail.skin:python_mail.skin
复制代码
不过通过fetch命令来建立的本地分支不是一个track branch,而且成功后不会自动切换到该分支上
注意:不要在本地采用如下方法:
  1. $ git branch python_mail.skin
  2. $ git checkout python_mail.skin
  3. $ git pull origin python_mail.skin:python_mail.skin
复制代码
因为,这样建立的branch是以master为基础建立的,再pull下来的话,会和master的内容进行合并,有可能会发生冲突...

[ 本帖最后由 git 于 2010-5-1 17:39 编辑 ]
posted @ 2013-01-26 08:41  sumsung753  阅读(268)  评论(0编辑  收藏  举报