續(xù)上篇git實用知識梳理(一)最基礎(chǔ)的知識
蒋歌,這里開始講講分支管理的故事侧甫。
分支管理策略
master分支是穩(wěn)定的,僅僅用來發(fā)布新版本康铭,而不是干活用的惯退。
dev分支是用來干活的,是不穩(wěn)定的版本从藤。等需要發(fā)布版本的時候催跪,再把dev分支合并到master。
團(tuán)隊中的每個人都建立自己的分支夷野,然后常常往dev分支合并。
合并分支扫责,加上-no-ff參數(shù)逃呼,是用普通模式合并,能看出來曾經(jīng)做過合并抡笼。
fast forward合并則看不出來曾經(jīng)做過合并苏揣。
創(chuàng)建、合并分支
在git里推姻,是使用指針來指向不同的分支,而HEAD則指向當(dāng)前分支藏古。所以合并兩個分支的時候,只要修改指針指向即可拧晕。創(chuàng)建分支是增加指針隙姿,刪除分支則是刪除指針。
git鼓勵用分支完成某個任務(wù)厂捞,合并后再刪掉分支输玷。因為創(chuàng)建队丝、合并欲鹏、刪除分支都非常快赔嚎,而且在分支上工作更安全。
查看分支:git branch
創(chuàng)建分支:git branch name
切換分支:git checkout name
創(chuàng)建+切換分支:git checkout -b name
合并某分支到當(dāng)前分支:git merge name
刪除分支:git branch -d name
通常衔憨,合并分支時袄膏,如果可能践图,Git會用“Fast forward”模式沉馆,但這種模式下,刪除分支后斥黑,會丟掉分支信息揖盘。
如果要強(qiáng)制禁用“Fast forward”模式锌奴,可以使用--no-ff
參數(shù),表示禁用“Fast forward”鹿蜀。
解決沖突
存在沖突時,使用$ git status
查看沖突的文件颠焦。
Git會用<<<<<<<往枣,=======,>>>>>>>標(biāo)記出不同分支的內(nèi)容分冈。我們查看沖突部分,手工修改解決之后雕沉,再提交就可以了。
分支策略
master分支應(yīng)該是非常穩(wěn)定的饺著,也就是僅用來發(fā)布新版本,平時不能在上面干活幼衰。
dev分支是不穩(wěn)定的,需要版本發(fā)布時渡嚣,再把dev分支合并到master上,在master分支發(fā)布對應(yīng)版本绝葡。
團(tuán)隊合作的時候腹鹉,每個人都有自己的分支,然后把自己的分支經(jīng)常的往dev分支合并功咒。
團(tuán)隊合作時需要善用git的分支功能。
bug分支:每個bug都可以通過一個新的臨時分支來修復(fù)力奋,修復(fù)后,合并分支溅呢,然后將臨時分支刪除猿挚。
但是,如果需要修改bug的時候亭饵,當(dāng)前正在dev上干活梁厉,還沒有提交,怎么辦词顾?此時可以使用git stash
把當(dāng)前工作現(xiàn)場“儲藏”起來,等以后恢復(fù)現(xiàn)場后繼續(xù)工作昔驱。
用git stash list
命令看剛才的工作現(xiàn)場上忍,恢復(fù)的話有兩種方式:
一是用git stash apply
恢復(fù)纳本,但是恢復(fù)后腋颠,stash內(nèi)容并不刪除繁成,你需要用git stash drop
來刪除淑玫;
另一種方式是用git stash pop
,恢復(fù)的同時把stash內(nèi)容也刪了尊搬。