好巧。就在我寫到這篇的時(shí)候,郭霖大神剛好推出了一篇Git使用大全,附微信推文連接,大師,我是你的粉絲
http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236779&idx=1&sn=2ba112b0d9c2ba4aff82d0dcff8ac6ef&scene=0#wechat_redirect
本次以我寫過的一個(gè)demo為例,學(xué)習(xí)分支前,先創(chuàng)建代碼倉庫,提交項(xiàng)目:
$git init
$git add .
$git commit -m "First commit."
先說一下為什么要使用分支,我們開發(fā)軟件的時(shí)候會隨著時(shí)間推移不斷更新版本,為了在開發(fā)新版本的時(shí)候不覆蓋掉舊版本(舊版本可能會出現(xiàn)Bug,此時(shí)需要修改舊版本,若沒有分支,此時(shí)的舊版本上就有了正在開發(fā)的新版本的特性,這并不好,因?yàn)樾掳姹究赡荛_發(fā)還不完全)。
有了分支,只需在發(fā)布一個(gè)版本的時(shí)候創(chuàng)建一個(gè)分支,然后再主干線上繼續(xù)開發(fā)新的后續(xù)版本,當(dāng)發(fā)現(xiàn)舊版本有Bug的時(shí)候只需修改分支并將分支合并到主干線即可。
分支的使用
- 查看分支
git branch -a
查看分支git branch -a

此項(xiàng)目還沒創(chuàng)建過分支,因此只有master主干線
- 創(chuàng)建分支
git branch version1.0
此時(shí)再次使用git branch -a查看,能看到多了一個(gè)分支
創(chuàng)建分支

- 切換分支
此時(shí)master前面有個(gè)*號,說明master為主干線,此時(shí)使用checkout命令可以切換到version1.0上
git chechout version1.0
切換分支

可以看到,此時(shí)已經(jīng)在version1.0分支上了
- 合并分支
由于在各自分支上修改代碼不會相互影響,為了在修改Bug后同時(shí)修復(fù)多個(gè)分支,使用合并merge命令
git checkout master
git merge version1.0
這樣就把version1.0分支上修改并提交的內(nèi)容合并到master上了,如果合并的時(shí)候出現(xiàn)代碼沖突,就需要自己找出并解決了。
- 刪除不需要的分支
git branch -D version1.0
合并,刪除分支

與遠(yuǎn)程版本庫協(xié)作(團(tuán)隊(duì)合作開發(fā)的時(shí)候)
- 下載遠(yuǎn)程版本庫的代碼
比如現(xiàn)有一個(gè)遠(yuǎn)程版本庫的Git地址是http://github.com/example/test.git, 使用如下命令即可將代碼下載到本地
git clone http://github.com/example/test.git
- 將本地內(nèi)容同步到遠(yuǎn)程版本庫
git push origin master
origin指定的遠(yuǎn)程版本庫的Git地址
master指定同步哪個(gè)分支
- 將遠(yuǎn)程版本庫上的修改同步到本地,有兩種命令,fetch和pull
fetch
git fetch origin master
此時(shí)同步下來的代碼不會合并到任何分支上,而是存放在一個(gè)origin/master分支上
可以通過diff命令來查看遠(yuǎn)程版本庫上修改了什么內(nèi)容
git diff origin/master
之后再調(diào)用merge將origin/master合并到主干線上即可
git merge origin/master
pull
pull命令相當(dāng)于將fetch和merge這兩個(gè)命令合并一起執(zhí)行,它可以從遠(yuǎn)程版本庫獲取代碼并合并到本地
git pull origin master
本文內(nèi)容來自《第一行代碼》,為加深自己理解,特此寫到這里,到此,書中對Git的介紹就告一段落了。