Git 分支的理解

2021-07-09 14:04:33 字數 1535 閱讀 2270

幾乎每一種版本控制系統都以某種形式支援分支。使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。

在很多版本控制系統中,這是個昂貴的過程,常常需要建立乙個源**目錄的完整副本,對大型專案來說會花費很長時間。

git 的分支可謂是難以置信的輕量級,它的新建操作幾乎可以在瞬間完成,並且在不同分支間切換起來也差不多一樣快。

和許多其他版本控制系統不同,git 鼓勵在工作流程中頻繁使用分支與合併,哪怕一天之內進行許多次都沒有關係。

理解分支的概念並熟練運用後,你才會意識到為什麼 git 是乙個如此強大而獨特的工具,並從此真正改變你的開發方式。

在 git 中提交時,會儲存乙個提交(commit)物件,該物件包含乙個指向暫存內容快照的指標,包含本次提交的作者等相關附屬資訊,包含零個或多個指向該提交物件的父物件指標:首次提交是沒有直接祖先的,普通提交有乙個祖先,由兩個或多個分支合併產生的提交則有多個祖先。

祖先 (譯註:即parent物件)

# 列出所有本地分支

$ git branch

# 列出所有遠端分支

$ git branch -r

# 列出所有本地分支和遠端分支

$ git branch -a

# 新建乙個分支,但依然停留在當前分支

$ git branch [branch-name]

# 新建乙個分支,並切換到該分支

$ git checkout -b [branch]

# 新建乙個分支,指向指定commit

$ git branch [branch]

[commit]

# 新建乙個分支,與指定的遠端分支建立追蹤關係

$ git branch --track [branch]

[remote-branch]

# 切換到指定分支,並更新工作區

$ git checkout [branch-name]

# 建立追蹤關係,在現有分支與指定的遠端分支之間

$ git branch --

set-upstream [branch]

[remote-branch]

# 合併指定分支到當前分支

$ git merge [branch]

# 選擇乙個commit,合併進當前分支

$ git cherry-pick [commit]

# 刪除分支

$ git branch -d [branch-name]

# 刪除遠端分支

$ git push origin --delete [branch-name]

$ git branch -dr [remote/branch]

參考資料

git 分支

git分支管理策略

git合併分支的理解和應用

git的合併分支包括合併遠端分支和合併本地分支,其實本意是一樣的。只不過拉遠端分支的時候多了一步git fetch,就是把所有分支的 從雲拉到本地快取,但是不做合併。關鍵是合併,說到合併的時候就要說到這最糾結的兩兄弟了。git merge全稱其實是git merge ff,ff 就是fast for...

git專案開發分支策略的個人理解

通過對git的使用和理解,慢慢發現git的優勢和不足,或許也不能叫不足,只是我想要的功能他還沒有實現,又或者人家實現了,愚笨的我沒有發現怎麼使用。現在對git的理解記錄下來 git使用的專案型別 相容性專案開發 在實際的專案開發中,通常會遇到兩種型別的專案,一種是相容性專案,一種是不相容專案 相容性...

git 檢視分支的源分支 Git 分支設計規範

規範是死的,人是活的,希望自己定的規範,不要被打臉。在說 git 分支規範之前,先說下在系統開發過程中常用的環境。簡稱全稱dev development environment fatfeature acceptance test environment uatuser acceptance tes...