Chinaunix首页 | 论坛 | 博客
  • 博客访问: 269969
  • 博文数量: 61
  • 博客积分: 655
  • 博客等级: 上士
  • 技术积分: 489
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-21 18:21
文章分类

全部博文(61)

文章存档

2014年(9)

2013年(23)

2012年(26)

2011年(3)

我的朋友

分类: LINUX

2013-07-26 10:54:27

首先, clone 一个远端仓库,到其目录下:

$ git clone git://example.com/myproject $ cd myproject

然后,看看你本地有什么分支:

$ git branch * master

但是有些其他分支你在的仓库里面是隐藏的,你可以加上-a选项来查看它们:

$ git branch -a * master
  origin/HEAD
  origin/master
  origin/v1.0-stable
  origin/experimental  
如果你现快速的代上面的分支,你可以直接切换到那个分支:  
$ git checkout origin/experimental  
但是,如果你想在那个分支工作的话,你就需要创建一个本地分支:  
$ git checkout -b experimental origin/experimental  
现在,如果你看看你的本地分支,你会看到:
$ git branch
  master * experimental
你还可以用git remote命令跟踪多个远程分支
$ git remote add win32 git://gutup.com/users/joe/myproject-linux-port $ git branch -a * master
  origin/HEAD
  origin/master
  origin/v1.0-stable
  origin/experimental
  linux/master
  linux/new-widgets

你可以用gitk查看你做了些什么:

$ gitk --all &

 /****************************************************************************************************************/
	

有时git clone下来会出现很多branch,更麻烦的是如果主分支没代码那你就只能看到.git目录了。如下面的这个: $ git clonegit://gitorious.org/android-eeepc/mesa.git   发现本地就只有一个.git目录,那么这个时候就需要checkout了。   进入你的本地目录,如这个是mesa,利用 $ git branch –r   查看branch信息(当然你也可以用git show-branch查看,不过有时并不好用),获得如下branch信息: origin/android origin/mesa-es origin/mesa-es-dri   此时我们需要的是android分支的代码,那么此时就要进行checkout了。 $ git checkout origin/android   你再看你的目录(mesa)下是不是有了代码了?其它的branch同理。     git clone默认会把远程仓库整个给clone下来; T2 {0 t, l+ @0 U" C2 g) i 但只会在本地默认创建一个master分支 如果远程还有其他的分支,此时用git branch -a查看所有分支:     * master        remotes/origin/HEAD -> origin/master   " A4 u3 ~+ n5 u5 \7 R" Z( d# J     remotes/origin/master        remotes/origin/python_mail.skin        remotes/origin/udisk        remotes/origin/vip 复制代码 能看到远程的所有的分支,如remotes/origin/python_mail.skin  e  Y' X9 ~, f1 | 可以使用checkout命令来把远程分支取到本地,并自动建立tracking     $ git checkout -b python_mail.skin origin/python_mail.skin) X& X: I3 Q; ?9 j9 T5 @; J/ M     Branch python_mail.skin set up to track remote branch python_mail.skin from origin.; i/ B! ^3 J# u6 a( }. I$ M- i     Switched to a new branch 'python_mail.skin' 复制代码 或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支 折叠展开复制代码     $ git checkout -t origin/python_mail.skin 复制代码 也可以使用fetch来做:     $ git fetch origin python_mail.skin:python_mail.skin 复制代码 不过通过fetch命令来建立的本地分支不是一个track branch,而且成功后不会自动切换到该分支上- z) t: R4 p- s6 _2 d3 a 注意:不要在本地采用如下方法:     $ git branch python_mail.skin     $ git checkout python_mail.skin/ i8 z/ N: a% v/ Q: M     $ git pull origin python_mail.skin:python_mail.skin 复制代码 因为,这样建立的branch是以master为基础建立的,再pull下来的话,会和master的内容进行合并,有可能会发生冲

阅读(841) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~