昨天我們認識了Branch是什麼,也找到一個「影分身術」的比喻來理解分支的概念。所以今天就直接來實際建立第一個 Branch了!
我們先看看我們是在哪一條分支上面:
git branch

這代表我目前這個 Repository只有一條本機Branch,那 * 就是我所在的Branch。
我想要建立一條專門拿來做這次練習的 Branch,然後會在這條 Branch 上修改 README,所以這條Branch的名稱先叫做: readme-update。然後查看有沒有建立成功:
可以看到他多了一個Branch,就是我剛創的:readme-update
A ─── B ─── C ─── D ← master
\
E ─── ← readme-update
那上面的圖片可以看到我雖然成功建立了新的Branch,但是她並不會自動把我切換過去,所以我們可以利用 git switch 來切換到我們要的那一個Branch上:
那 * 成功出現在readme-update前面就是我們切換成功了!
納因為今天是為了實際認識Branch,而且我也還沒想到專案可以修改甚麼地方,所以我在這會修改他的README來做為觀察。
那我剛剛已經開啟README修改了幾句話了,接這git status 查看他寫了什麼!
這裡可以注意到我真的在 readme-update Branch,Git也發現我修改了 README.md
On branch readme-update
Changes not staged for commit:
modified: README.md
接著Commit 這個版本:
git commit -m "Update README on branch"
就是上面分支 E 的地方
那我為了更明顯得看到他這兩個Branch的差別,所以我直接將他Push到GitHub

然後回到GitHub的Branches頁面,可以看到出現有 master 和 readme-update 兩條 Branch。master 仍然是預設的主要分支,readme-update顯示的Ahead 1,並不是代表它只有一個 Commit,是代表它在原本 master 的版本紀錄之外,又多了 1 個新的 Commit,就是剛剛我們修改 README 所建立的 Commit。
那我直接切換到readme-update這條Branch看看他的README也看到他真的有我們Commit的"Update README on branch"這個版本,可以看到剛剛新增的「專案維護」內容已經成功出現在 README 中。切換回 master就不會看到這段內容。這也實際證明了兩條 Branch 可以保留不同的修改內容,而且不會直接影響原本的 master。
那麼今天我們實際實驗了在Branch上修改,而且看到了他的修改不會去影響任何一條Branch,那麼要怎麼把修改的內容合到master裡面呢?
明天我們就來認識Merge