Git 中的分支與指針概念
在 Git 中,每次提交會串成一條時間線,這條時間線形成了分支。當前的主分支稱為 master
,並且有一個 HEAD
指針來指示當前所在的分支和提交點。以下是分支和指針的具體運作方式:
1. master
分支和 HEAD
指針的初始狀態
- 初始狀態:最初,只有
master
分支,它指向最新的提交,而HEAD
指針指向master
。 - 提交更新:每次提交後,
master
分支會向前移動一步,HEAD
始終指向master
的位置。隨著提交的增多,master
分支的時間線不斷向前延伸。
2. 創建新分支的過程
- 新分支(例如
dev
)的創建:當創建dev
分支時,Git 會建立一個新的指針dev
,指向與master
相同的提交點。此時,HEAD
會指向dev
,表示工作已切換至dev
分支。 - 快速創建:創建新分支非常快速,因為 Git 僅需新增一個
dev
指針並修改HEAD
的指向,並不會更改工作區的檔案。
3. 在 dev
分支上進行修改和提交
dev
分支的獨立提交:從dev
分支開始工作後,對工作區的修改和提交將針對dev
分支。每次在dev
分支進行提交後,dev
指針會向前移動,而master
指針保持不變。
4. 合併分支
- 合併至
master
:當dev
分支的工作完成後,可以將其合併回master
分支。最簡單的合併方法是將master
指針直接指向dev
當前的提交點,這樣就完成了合併。這一過程非常快速,僅需更改指針指向。 - 不影響工作區:合併分支時,Git 僅移動
master
指針,不會更改工作區中的內容。
5. 刪除 dev
分支
- 刪除分支:合併完成後,可以刪除
dev
分支,這只會移除dev
指針,系統將回到單一的master
分支。刪除分支不會影響合併後的歷史記錄或工作內容。