Git版本控制入門(2) — branch


Posted by ai86109 on 2020-03-24


在前一篇我們已經手把手帶你從安裝到建立你的第一個git版本控制,有時間的話建議看完之後再來看這篇,會比較知道git到底在做什麼:

Git版本控制入門(1)

從前面基礎知識我們知道,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 & 遠端協作有關的東西。


#Git #Github