Git 課程學習筆記-ep3

Jordan Tseng
JordanTTCDesign
Published in
Sep 29, 2020

來到第三堂課一次把筆記寫完好累😭😭,慢慢修改中…

開始學習吧!本次主要講分支:

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
commit 線圖

未完待續

--

--