看圖學 - Git

Git 以其開源、簡單、快捷、分佈式、高效等特點成爲當前最流行的源代碼管理工具, 我們來通過以下三張圖來認識一下Git及其在項目中使用思路。

分佈式


Git作爲分佈式版本控制系統的代表,客戶端並不僅僅獲得最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來。

這樣一來,Git在本地磁盤上就保存着所有有關當前項目的歷史更新,並且Git中的絕大多數操作都只需要訪問本地文件和資源,不用連網,開發者都可以非常輕快地頻繁提交更新,等到了有網絡的時候再上傳到遠程的鏡像倉庫。用SVN/CVS等集中式管理工具,沒有網絡開發者就無法做任何事情,或者很難。

Git 常見命令


Git系統中分本地和遠程倉庫(remote repository)。
其中本地分三個區,工作區(workspace)、暫存區(index)和本地倉庫(local repository。這就是爲什麼沒有網絡我們依然可以提交代碼更新(commit),因爲提交僅是提交到本地倉庫,待有網絡之後可以再推送(push)到遠程倉庫。
而遠程倉庫(remote repository)永遠爲我們保存一份代碼拷貝。

git fetch VS git pull
git fetch是將遠程倉庫的更新獲取到本地倉庫,不影響其他區域。
git pull則是一次性將遠程倉庫的代碼更新到工作區(同時也會更新本地倉庫)。

Git Flow

在熟悉了Git的常用命令以後,我們來看看如果在真實的項目開發中如何使用Git。
一般而言,軟件開發模型有常見的瀑布模型、迭代開發模型、以及互聯網公司推薦的敏捷開發等不同的模型。每種模型有各自應用場景。Git Flow重點解決的是由於源代碼在開發過程中的各種衝突導致開發活動混亂的問題。


feature分支 :一些功能開發過程中使用的分支,通過代碼評審和測試後可以合併回develop分支, 注意從不與master交互。
develop分支:feature以及release交互。開發者不允許直接在develop上進行開發。
release分支:爲了發佈存在,總是基於develop,發佈以後又合併回develop。當然對應的tag跑到master這邊去了。
hotfix分支:基於master,並最後合併到master和develop。生命週期較短,用了修復緊急bug或小粒度修改發佈。注意養成清理一些不再使用的featurehotfix的習慣,
master分支:僅是一些關聯的tag,不允許在master上開發。

有興趣的可以拓展瞭解下GitHub Flow, 其也是基於分支的工作流,非常適合代碼部署非常頻繁的團隊和項目。

歡迎分享更多有意思,有知識的圖片。

更多

請關注豆志昂揚微信公衆號獲取更多內容:

  • 直接添加公衆號豆志昂揚
  • 微信掃描下圖二維碼;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章