這篇文章內容主要探討 Git 相似的名詞,記錄下來避免未來忘記
- master 及 origin/master
- fetch 及 pull
- rebase 及 merge
master vs. origin/master
master: 本地端分支
origin/master: 遠端分支
更白話的說,本地端有一個 master 分支,當我們進行 git push,會複製一份本地端 master 到遠端 origin ,也就是 origin/master 分支囉!
fetch vs. pull
fetch: 從 remote repository 取得最新的版本,這裡舉動同時會自動建立分支FETCH_HEAD,而這被撈下來的版本會自動放進此分支
pull: 從 remote repository 取得最新的版本並直接將遠端分支 origin/master 進行合併提交
一個 pull 等同於
1. fetch
2. merge origin/master
rebase vs. merge
假設,目前我們有兩個分支 A、B,且此時我們在 分支 B
rebase: 將 A 當作基底,並將 B分支 的內容嫁接在 分支A 後方 (兩條變一條的概念),值得注意的一點是,因為 提交位置 更動了,所以 SHA-1 會重新計算!
merge: 將 A 合併進分支 B,並產生一個額外的 提交
reference:
- master vs. origin/master
- Fetch vs. pull
- rebase vs. merge