有時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的內容進行合並,有可能會發生沖