Git 課程學習筆記-ep3
來到第三堂課一次把筆記寫完好累😭😭,慢慢修改中…
開始學習吧!本次主要講分支:
branch分支
簡單說明,它們是一個指向某個 commit 的 reference 標籤。
為什麼要用分支?
因為正式網站、測試網站、開發中都要分開,確保不會讓錯誤code混亂到其中😩😩。
因為建立 branch 不怎麼會佔用到硬碟空間或者是記憶體,所以也可以把每個大功能都獨立開一個分支 ex:feature/A、feature/B,同時開發,最後再合併,才不會影響到主機分支喔😏。
開分支流程介紹
新增分支
git branch dev
查看分支
這時候單純打上面的不會有反應,如果怕沒開到分支,就用:
git branch//查詢用
切換分支
開好 dev 分支後,如果要在 dev 開發的話就要把 HEAD 貼到 dev 分支。
git checkout dev
**注意,記得都要 checkout 喔 😎😎😎
checkout yo~
開發分支要叫什麼呢?
開分支可不是亂開的呢?雖然不是看生辰八字,但取名字也有學問,才不會讓別人看不懂。
- master預設分支,
- develop
- feature功能分支 f/a f/b,所以 Feature 可能會有很多支分支。主要用feature玩
開錯分支,可以用git branch -d
刪除:
git branch -d i-am-so-handsome(分支名稱)
合併merge
合併就是進行融合兩個不同分支的動作
我們在 dev 開發好新功能,也測試完成,就要合併到master去拉,下面來了解一下步驟:
先回到 master → 在 merge
git checkout mastergit merge dev
但這時候要注意,因為這時候 master 因為跟 dev 同出本源,這時候合併會觸發「快轉機制」
**同出本源就是像下圖,master 跟 dev 以前版本一樣。
合併之後
快轉機制合併之後,不會產生一個 commit ,而是到最新的 commit 點上。
非快轉模式
既然快轉模式不會產生新commit,那非快轉模式就是會產生出額外commit,WHY ?
因為兩個分支最新檔案已經不是在同一條線上了。
這時候 merge 他們,就會直接產生新的 commit 點。
**注意,merge之前先輸入一個指令:因為萬一兩個分支有衝突,可以用vscode來顯示資訊。
git config --global core.editor "code --wait"
惡趣味一點,可以把他們想成:
快轉模式:爺爺跟孫女結婚,不能生小孩。
非快轉模式:一般人結婚,生吧!!
快轉模式也能產生新 commit 點的方式
好吧,快轉模式還是用別的方法產生新 commit拉(人工受孕🤯)
為什麼要產生新的 commit 呢?因為這樣可以在路線上產生小耳朵,讓開發流程更清楚。
推到遠端資料庫
如果在 master ,push 到遠端 master 上,會把全部 commit 包含 dev 開發中所有的都推上去。
但是在遠端資料庫中不會有 dev 分支標籤。
觀看線圖,除了用 gui 軟體看,也能在終端機觀看 git commit 線圖:
git log --oneline --graph
未完待續