原文鏈接:http://www.cnblogs.com/BeginMan/p/3543240.html
金州ssl適用于網站、小程序/APP、API接口等需要進行數(shù)據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!分支的理念就是分身,就像孫悟空拔出猴毛變出很多跟自己一模一樣的猴子,然后每個猴子做自己的事情互不干涉,等到所有猴子做完之后,猴子集合來合并勞動成果,然后悟空就把那些猴子猴孫門統(tǒng)統(tǒng)收回了。
你創(chuàng)建了一個屬于你自己的分支,別人看不到,還繼續(xù)在原來的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到開發(fā)完畢后,再一次性合并到原來的分支上,這樣,既安全,又不影響別人工作。
Git鼓勵大量使用分支:
命令如下:
查看分支:git branch
創(chuàng)建分支:git branch name
切換分支:git checkout name
創(chuàng)建+切換分支:git checkout -b name
合并某分支到當前分支:git merge name
刪除分支:git branch -d name
推薦閱讀廖雪峰的Git教程
產生沖突的方式很多,常見的一種是創(chuàng)建一個分支并修改提交,然后回到主分支在修改提交同一個文件,然后“快速合并分支”就發(fā)生沖突了:
$ git merge feature1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.
打開我修改的文件,可以發(fā)現(xiàn)顯示如下:
<<<<<<< HEAD
在master上做出修改
=======
解決沖突
>>>>>>feature1
<<<<<<< HEAD 表示主分支,主分支的修改是:“在master上做出修改”;>>>>>>feature1表示我創(chuàng)建的feature1分支。
解決辦法就是手動處理沖突,這點跟SVN一樣。處理之后在提交,然后刪除分支即可。
通過廖雪峰的官方網站的git學習,讓我清楚了明白git分支的策略:
在實際開發(fā)中,我們應該按照幾個基本原則進行分支管理:
首先,master分支應該是非常穩(wěn)定的,也就是僅用來發(fā)布新版本,平時不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是說,dev分支是不穩(wěn)定的,到某個時候,比如1.0版本發(fā)布時,再把dev分支合并到master上,在master分支發(fā)布1.0版本;
你和你的小伙伴們每個人都在dev分支上干活,每個人都有自己的分支,時不時地往dev分支上合并就可以了。
所以,團隊合作的分支看起來就像這樣:
關于no-ff:
上面我們使用的合并分支是fast forward,這種快速合并的模式,但是有個地方不好的就是不能顯示歷史信息,在以后開發(fā)中我不知道有哪些分支曾經合并過,所以最好使用 no-ff:no fast forward的合并方式,這種方式在合并的同時會生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。
$ git merge --no-ff -m "merge with no-ff" dev
在上一篇博客[git初體驗(二)基礎git文件操作]也總結了git的儲蓄,所謂的儲蓄就是針對以下的情況:
當你正在開發(fā)一個功能時,突然boss讓你盡快修改一個bug,此時最緊急的是fix bug. 而正開發(fā)的功能尚未完善還不能提交,這個時候就會想到能不能將手頭的工作隔離開,去單單解決bug,然后提交bug,然后在進行手頭工作。
上面的案例就是git儲蓄的出現(xiàn):
git stash#把當前工作現(xiàn)場“儲藏”起來
開發(fā)一個新feature,最好新建一個分支;
如果要丟棄一個沒有被合并過的分支,將丟失掉修改,可以通過git branch -D name強行刪除。
參考:git創(chuàng)建與管理遠程分支
1.遠程分支就是本地分支push到服務器上的時候產生的。比如master就是一個最典型的遠程分支(默認)
git push origin master
2.隨便創(chuàng)建分支,然后push到服務器就生成了遠程分支
git checkout -b dev# 創(chuàng)建本地dev分支用于開發(fā)
git checkout -b bug# 創(chuàng)建本地bug分支用于bug處理
git checkout -b feature # 創(chuàng)建本地feature分支用于新功能開發(fā)
git push origin dev# 生成遠程dev分支
git push origin bug
git push origin feature
3.遠程分支與本地分支區(qū)分。在服務器上拉取特定分支時要指定本地分支名稱:
git checkout --track origin/dev
#注意該命令由于帶有--track參數(shù),所以要求git1.6.4以上!
這樣git會自動切換到develop分支。
4.同步本地遠程分支
git fetch origin