您好,登錄后才能下訂單哦!
Git的研發應用場景是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Git誕生于2002年,由Linux之父Linus Torvalds和他的團隊開發并不斷完善,它秉承了Linux的開源精神,為廣大研發團隊帶來了非常棒的版本控制體驗。下面立足Git的工作原理,深入探討各種研發場景中工作流等問題。
Git工作模式
代碼提交過程
一次修改被成功提交到遠端倉庫會歷經四個階段,1本地工作區->2緩存區->3版本庫->4遠端版本庫,通過執行相應的Git命令,文件在這四個區域跳轉,并呈現不同的狀態:
1.已修改(modified):包括三種文件,新增文件,被修改的文件,被刪除的文件
2.已暫存(staged):對已修改的文件執行git add或git rm操作,文件就變成已暫存狀態,進入暫存區。暫存區實際上就是一個文件索引目錄樹,記錄了所有文件名、文件狀態信息,它已索引的方式建立了文件名和文件內容(在對象庫.git/objects中保存)的對應關系。
3.已提交(committed):對已暫存的文件執行git commit操作,文件就變成已提交狀態,進入本地版本倉庫。
4.已上傳:對已提交的文件執行git push操作,文件就變成已上傳狀態,進入遠端版本倉庫。
Git如何記錄每次提交
我們思考一下,版本控制系統應該如何記錄每次提交呢?正常的思維肯定是記錄“差異”(delta),也就是前后兩個版本中文件內容的不同,確實大多數版本控制系統是這么做的,比如我們所熟悉的CVS,SVN。但是,Git卻不這樣!每次提交更新時,Git會對全部文件作一個快照(snapshot),并保存指向這次快照的索引。
這種保存方式帶來很多好處,切換版本時,直接引用指向目標版本的索引即可,不需要像差異存儲那樣,需要版本之間的merge,速度會快很多,更重要的是,為后文所講到的輕量級分支切換提供了前提條件。
Git分支
Git新建分支的本質就是創建一個指向最后一次提交的可變指針,所以,Git分支的創建不是復制版本庫的內容,僅僅是新建了一個指針,它以40個字符長度SHA-1字串形式保存在文件中,這難以想象的輕量級就是源于“快照”保存的版本設計理念。
Git工作流
什么是Git工作流?你可以理解為代碼管理的分支策略。這里從典型的GitFlow工作流出發,配合我正在使用的代碼托管平臺(華為軟件開發云),給大家詳細講解工作流是如何服務于項目流程管理和團隊協同開發。
?master:主線分支,版本有較強穩定性,供生產環境部署使用,這個分支只能從其它分支合并,不能在這個分支上直接提交修改。
新建分支:
在開發云界面輸入新分支名,并選擇從哪個分支檢出即可。
?develop:主開發分支,用來集成測試最新合入的開發成果,包含要發布到下一個Release的代碼。
?feature:特性分支,每個特性一個分支,用于開發人員提交代碼并進行自測。一旦開發完成,我們合并回Develop分支進入下一個Release。
?hotfix:補丁分支,生產環境發現新Bug時創建的臨時分支,問題驗證后,合并到Master和Develop分支,所以Hotfix的改動會進入下一個Release
?release:發布分支,發布新版本時,基于Develop分支創建,發布完成后,合并到master和develop分支。
各個分支之間的關系可以從開發云的“倉庫網絡”中查看:
優點:項目管理流程明確
缺點:相對復雜,需要同時維護兩個長期分支,不適合網站項目。
分支合并
無論哪種工作流都會涉及到分支合并(把一個分支中的修改整合到當前分支),主要有兩種方法:三方合并(merge)和衍合(rebase)。我們通過對同一種場景進行不同操作體會兩種合并方法的區別。
場景:master分支新增了C4節點,hotfix分支新增了C3節點,現將hotfix分支合并到master分支:
1.三方包括hotfix新增節點C3,master新增節點C4,以及兩者的共同祖先節點C2。這種合并操作簡單,但新增合并節點C5,形成了環形,版本記錄可讀性差。
a)PC端命令操作方式:
#git checkout master
#git merge hotfix
b)開發云平臺頁面操作:
第一步:
第二步:
2.衍合先將master分支新增節點C4以補丁形式保存在.git/rebase目錄中,然后同步hotfix分支最新代碼,再應用補丁C4’。
#git checkout master
#git rebase hotfix
沖突解決
類型一:兩個合并分支修改了同一行代碼
解決方法:
1.分析哪種修改方法正確,手動合并;
2.提交修改。
類型二:文件被重命名為不同的名字
解決方法:
1.確認哪個名字是正確的,刪除錯誤的;
2.提交修改。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。