第一部分? 基本操作
創(chuàng)建分支:
git branch 分支名
切換分支:
git checkout 分支名
(新版本) git switch 分支名
創(chuàng)建并切換一步到位:
git checkout -b 分支名
(新版本) git switch -c 分支名
查看所有分支及當(dāng)前分支:
git branch(當(dāng)前所在分支前會標(biāo)記? *? )
將其他分支的提交合并到Master分支上:
git merge 分支名
刪除分支:
git branch -d 分支名
第二部分? 解決分支沖突
子分支和master之間出現(xiàn)沖突:
master在test.txt文件中添加了“question&anwser”提交,b1分支在test.txt文件中添加了“question”后提交霍比,將b1分支合并到master分支時(shí)遇到?jīng)_突如下:
發(fā)生沖突后文本內(nèi)容變成了下圖這樣,
解決沖突需要我們手動修改沖突后再次在master分支提交阅签。
提交時(shí)可能發(fā)生的錯(cuò)誤及解決辦法:
1.全部提交,如下圖。git commit -a?????? 2.部分提交。git commit -i -m "conflict fixed"
查看分支合并圖:
git log --graph
第三部分 bug分支
在b1分支上正在開發(fā)一個(gè)任務(wù)缩歪,小組里有一個(gè)bug急需解決抡秆,這時(shí)候創(chuàng)建一個(gè)bug01分支奕巍,改bug。那么在b1上沒提交的情況下儒士,切換到bug01分支上去改bug的止,回來開發(fā)的任務(wù)還有嗎?
保存b1分支的工作現(xiàn)場:
git stash
假如在master分支上修改bug着撩,就在那個(gè)分支上開一個(gè)臨時(shí)的分支“滅霸(無聊的諧音梗)”解決bug诅福,解決后將“滅霸”合并到master分支,最后刪除“滅霸”拖叙。
消滅bug后氓润,回到開始的地方,b1分支上繼續(xù)開發(fā)任務(wù)薯鳍,
查看保存的工作現(xiàn)場:
git stash list
恢復(fù)工作現(xiàn)場:
恢復(fù)+刪除stash內(nèi)容:? git stash apply stash@{0}+git stash drop
一步到位:git stash pop(自動刪除stash內(nèi)容)
由于b1是從master上分出來的咖气,master上存在bug,自然b1也會存在bug。那對一個(gè)分支的修改如何復(fù)制到另一個(gè)上呢?(類似格式刷的功能)
復(fù)制一個(gè)特定的提交到當(dāng)前分支:
git cherry-pick <修改操作id編號>
注意:在b1分支 cherry-pick 的時(shí)候崩溪,之前做的修改要先commit浅役,不然會發(fā)生如下圖中的沖突,或者手動解決沖突后再執(zhí)行add和commit操作伶唯。