在前一篇我們已經手把手帶你從安裝到建立你的第一個git版本控制,有時間的話建議看完之後再來看這篇,會比較知道git到底在做什麼:
從前面基礎知識我們知道,git可以透過建立新的版本,而有一系列的歷史紀錄可供隨時提取,但這些版本終究還是在同一條線上的,並不會有branch(分支),但git其實是可以做到這件事的,這篇我們就是要來談這個。
為什麼我們需要branch?
試想你現在手上有一個穩定版的專案,老闆要求你開發新功能,而你手腳很快不到一週的時間已經做了30%的功能了,這時候突然出現很嚴重的bug需要馬上修正,所以你趕緊把手上專案的bug修正,然後發佈出去~蹦!新功能還沒做完卻曝光了。
這也是為什麼我們需要用到branch的原因。
使用branch的功能,穩定版可以持續的開發新功能,而在出現bug時只要回到穩定版的檔案開出branch,便可以放心的release出修正版的檔案,待新功能開發完畢後,就可以將兩條線merge起來,也就不會被老闆罵了。
平行宇宙的誕生
在你第一次git commit
時,這一條路徑就是master,而當你想創造分支時
git branch 分支名稱
建立分支後,可以使用git branch -v
確認目前有哪些branch,並且查看目前是在哪一條分支下
刪除的話git branch -d 分支名稱
我們現在有了新的分支了,那要怎麼切換過去呢,其實跟剛剛切換版本很像
git checkout 分支名稱
宇宙合併
當我們把新功能都做完了,想把剛剛的branch合併進來該怎麼做
先切換到想被併入的那條線 例如:git checkout master
然後git merge 分支名稱
這條branch就會被併入master內
此時就可以把這條branch刪掉(如果想留著也ok)
git branch -d 分支名稱
git是很智慧的,如果他發現branch裡A檔案是最新的,而master內B檔案是最新的,他會在合併後取其最新的部分,但有些狀況他還是沒辦法處理的,例如說你改A檔案,他也改A檔案,甚至還改了同一行,這時候只能手動去解決這個衝突。
所以當你要合併時發生衝突,系統會告訴你有conflict,此時你要手動去解決衝突的點,再手動commit。
git commit -am “合併的敘述”
另外,學習branch也推薦用Learn git branching哦!
Git的基礎就差不多這樣了,接下來的文章要來講 github & 遠端協作有關的東西。