Git分支管理

1、簡單概括

git fetch是將遠程主機的最新內容拉到本地,用戶在檢查了以後決定是否合併到工作本機分支中。
而git pull 則是將遠程主機的最新內容拉下來後直接合並,即:git pull = git fetch + git merge,這樣可能會產生衝突,需要手動解決。

1.倉庫(Repository)

①源倉庫(線上版本庫)

在項目的開始,項目的發起者構建起一個項目的最原始的倉庫,稱爲origin。

源倉庫的有兩個作用:

1.彙總參與該項目的各個開發者的代碼

2.存放趨於穩定和可發佈的代碼 

源倉庫應該是受保護的,開發者不應該直接對其進行開發工作。只有項目管理者能對其進行較高權限的操作。

②開發者倉庫(本地倉庫)

任何開發者都不會對源倉庫進行直接的操作,源倉庫建立以後,每個開發者需要做的事情就是把源倉庫的“複製”一份,作爲自己日常開發的倉庫。這個複製是gitlab上面的fork

每個開發者所fork的倉庫是完全獨立的,互不干擾,甚至與源倉庫都無關。每個開發者倉庫相當於一個源倉庫實體的影像,開發者在這個影像中進行編碼,提交到自己的倉庫中,這樣就可以輕易地實現團隊成員之間的並行開發工作。而開發工作完成以後,開發者可以向源倉庫

送pull request,請求管理員把自己的代碼合併到源倉庫中,這樣就實現了分佈式開發工作和集中式的管理

2.分支(Branch)

①master branch:主分支

master主分支從項目一開始便存在,它用於存放經過測試,已經完全穩定代碼;在項目開發以後的任何時刻當中,master存放的代碼應該是可作爲產品供用戶使用的代碼。所以,應該隨時保持master倉庫代碼的清潔和穩定,確保入庫之前是通過完全測試和代碼reivew

master分支是所有分支中最不活躍的,大概每個月或每兩個月更新一次,每一次master新的時候都應該用git打上tag,來說明產品有新版本發佈。

②develop branch:開發分支

develop開發分支,一開始從master分支中分離出來,用於開發者存放基本穩定代碼。每個開發者的倉庫相當於源倉庫的一個鏡像,每個開發者自己的倉庫上也有masterdevelop。開發者把功能做好以後,是存放到自己的develop中,當測試完以後,可以向管理者

發起一個pull request,請求把自己倉庫的develop分支合併到源倉庫的develop中。所有開發者開發好的功能會在源倉庫的develop分支中進行彙總,當develop中的代碼經過不斷的測試,已經逐漸趨於穩定了,接近產品目標了。這時候,就可以把develop分支合併

master分支中,發佈一個新版本。

注:任何人不應該向master直接進行無意義的合併、提交操作。正常情況下,master只應該接受develop的合併,也就是說,master所有代碼更新應該源於合併develop的代碼。

③feature branch:功能分支

feature功能性分支,是用於開發項目的功能的分支,是開發者主要戰鬥陣地。開發者在本地倉庫從develop分支分出功能分支,在該分支上進行功能的開發,開發完成以後再合併到develop分支上,這時候功能性分支已經完成任務,可以刪除。功能性分支的命名一般

feature-*,*爲需要開發的功能的名稱。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章