关于git代码管理的详细操作流程
內容目錄
文檔控制
1.概述
1.1.概述
1.2.參考資料
2.Git相關知識
2.1.Git代碼管理
3.使用命令行做代碼管理和Review
3.1.概述
3.2.項目代碼管理
3.3.項目代碼Review
4.使用Eclipse的Git插件做代碼管理
4.1.概述
4.2.項目代碼管理
4.3.項目代碼Review
1.?概述
本章主要描述文檔功能,即當使用Git作為代碼管理工具,并結合Phabricator的Arcanist命令行工具做代碼Review時,項目從pull到push全程的操作方法。包括兩種方式:僅使用命令行和使用Eclipse的Git插件結合命令行。
?
1.1.?概述
1.1.1.?文檔功能
文檔描述了:開發人員從領取到開發任務到最終代碼提交過程中如何進行代碼管理和Review。
1.1.2.?文檔適用
?
1.2.?參考資料
1.2.1.?參考資料推薦
2.?Git相關知識
本章節主要講解必要的Git相關知識,幫助對文檔內容的理解。
?
2.1.?Git代碼管理
2.1.1.?講解范圍
本章只講解代碼管理過程中用到的分支創建與合并。
2.1.2.?基于Git的代碼管理
使用Git做項目代碼管理時,從宏觀上看主分支只有一條:master,每當有新功能開發完成并提交,master分支都會向前移動一步,越來越長。圖中HEAD指的是當前分支,它直接指向的是分支,而不是提交(節點)。
當我們創建新的分支,例如?dev?時,Git?新建了一個指針叫?dev,指向?master?相同的提交,再把?HEAD?指向?dev,就表示當前分支在?dev?上:
創建并切換到一個新的分支工作區不會有任何變化。但是再次對工作區的修改和提交就是針對dev分支的了,每次提交,dev會向前移動一步,而master不變。
假如我們在?dev?上的工作完成了,就可以把?dev?合并到?master?上。Git?怎么合并呢?首先切換到master分支,你會發現工作區的內容神奇的還原了。這時你就需要將dev的更改內容合并到master分支了。
使用git?merge?someBranch命令,可以將someBranch合并到當前分支,刪除無用的開發分支,一次功能的開發就完成了。
另外你還需要知道的就是遠程和本地的概念。認識什么是遠程倉庫和本地倉庫,并掌握遠程分支、本地分支和它們之間的各種操作。
學習地址:http://git-scm.com/book/zh/ch3-5.html
3.?使用命令行做代碼管理和Review
本章以只使用命令行的方式來做代碼管理和Review
?
3.1.?概述
3.1.1.?總體預覽圖
開發人員接到新的開發任務后,如果沒有拉取過遠程倉庫代碼,就拉取一次。否則請先更新到代碼最新狀態。然后,由第一個人創建一個新的開發分支并推送到遠程。再然后,所有開發同一功能的開發人員跟蹤對應的遠程開發分支,進行開發。最后功能開發完成時,由最后一人提交代碼統一提交代碼Review,通過后將代碼提交到master。功能開發完成。
?
3.2.?項目代碼管理
3.2.1.?拉取遠程倉庫代碼
使用Git?Bash或命令行工具,在系統合適位置(如:E:\MyWorkspace)拉取遠程倉庫代碼,這個位置將作為本地倉庫。
如果已有對應遠程倉庫的本地倉庫,在本地倉庫執行指令”git?pull”獲取到最新代碼,再繼續下面的步驟。
這里只解釋一遍”git?pull”的含義:如果當前分支在跟蹤一個遠程分支,則將這個遠程分支的最新代碼拉取到本地倉庫。這個解釋只是概述大意,不做更深的討論,想進一步了解,請查看2.1.2小節提供的參考網址。
3.2.2.?創建開發分支并推送到遠程
如果新的開發任務已經創建好了遠程分支,則跳到步驟3.2.3.否則創建一個新的開發分支
然后將這個分支推送到遠程,遠程分支的命名請按照具體規定
此時發現當前分支并沒有跟蹤遠程的開發分支,這就需要下一步
3.2.3.?跟蹤遠程開發分支
跟蹤遠程開發分支
其實這句指令是新建一個跟遠程分支同名的分支并跟蹤這個遠程分支。所以這個remote_T34分支是一個本地分支!
3.2.4.?開發
功能開發。
3.2.5.?提交代碼并推送到遠程開發分支
如果代碼有修改,運行”git?status”時Git會給出一些有意義的提示
對修改的代碼進行一次提交
再次運行”git?status”命令,提示沒有需要提交的了,并建議使用”git?push”命令將本地修改推送到遠程。
代碼推送后,執行”git?status”發現自己本地倉庫的代碼已經是最新的了。
本節描述了一次提交。其實一個正常的功能開發就應該伴隨著無數次的開發和提交的迭代。
3.2.6.?切換到master分支并合并遠程開發分支的代碼
當功能開發完成后,就需要將開發分支的代碼合并到master主分支了。這一步是在提交代碼Review之前的準備。
首先切換到master分支
當然這個master其實也是本地分支,只是它名字跟遠程主分支一樣而且它在跟蹤遠程master。在合并前還需要保證合并的兩者都是最新的代碼,所以
然后,可以放心合并了。”git?merge?someBranch”的意思是將someBranch分支的內容合并到當前分支下。
注意這次合并是在本地master分支下,合并本地remote_T34分支的內容。然后你告訴我本地master和本地remote_T34的代碼都是最新的,那我合并這兩個然后推送到遠程是什么效果?誒~,就是合并遠程master和遠程remote_T34!
但是!此時千萬不能推送到遠程,因為還沒有高層的點頭(代碼Review)!
其實這個小節主要作用就是處理代碼合并時的沖突,如果有沖突,全程大概也只有這個地方高發。合并完成后,就該提交代碼Review了。
3.2.7.?代碼Review通過,代碼最終提交到master
提交的代碼Review通過之后,就可以推送代碼到遠程了。3.3.將做詳細講解。
?
3.3.?項目代碼Review
3.3.1.?提交代碼Review
執行arc?diff提交代碼Review,會彈出文本編輯器讓你編寫一些信息,其中最重要的”Reviewers”和”Subscribers”一定要認真填寫。
?
保存關閉即可。
3.3.2.?查看Review狀態
執行”arc?list”查看Review狀態,Git?Bash對代碼Review工具Arcanist的支持不是很完善,如果執行arc開頭的命令提示信息不完全或者很怪異,可以更換使用命令行工具
上圖的狀態是還未審批通過,下圖是審批通過
3.3.3.?將代碼推送到遠程master分支
執行”arc?land”命令,將代碼推送到遠程master分支
提示如上圖說明推送成功。
命令”arc?land”封裝了包括”git?push”等的許多Git命令,這樣你就不用為沒有執行”git?push”命令的推送到遠程感到怪異了。
做到這一步,說明你已經開發完了一個功能,終于可以松一口氣了。
4.?使用Eclipse的Git插件做代碼管理
本章描述如何使用Eclipse的Git插件來替代命令行做代碼管理,但代碼因為Eclipse不能對Arcanist支持,所以代碼Review依然使用命令行。
?
4.1.?概述
4.1.1.?概述
本章考慮到開發人員使用Eclipse作為IDE,而Eclipse也提供了對Git支持的插件,所以新開一節討論這個插件的常用的用法。
?
4.2.?項目代碼管理
4.2.1.?項目導入
將項目導入Eclipse,如果是Git管理的項目,會顯示分支信息
4.2.2.?創建分支并推送到遠程
如果新的開發任務已經創建好了遠程分支,則跳到步驟3.2.3.否則創建一個新的開發分支:在項目上右鍵->Team->Switch?To->New?Branch…
彈出框里輸入分支名,Finish
將項目推送到遠程:右鍵項目->Team->Push?Branch?‘someBranch’…
輸入遠程分支名,Next
直接Finish
此時,T35分支已經在跟蹤遠程remote_T35分支了,不信你可以在命令行看到
如果經過了這個步驟,如上面所說,該T35分支已經在跟蹤遠程remote_T35分支了,跳過下一步(即4.2.3.)。
4.2.3.?跟蹤遠程開發分支
如果在接到開發任務時,Eclipse已經有了這個項目,則先將代碼更新到最新。
切換到master分支下,右鍵項目->Team->Pull
跟蹤遠程分支remote_T31,右鍵項目->Team->Switch?To->Other…
選擇Remote?Tracking下的你需要跟蹤的遠程分支,Checkout
選擇新建一個本地分支來跟蹤
分支名改不改隨意,Finish。切換到跟蹤遠程開發分支的本地分支
4.2.4.?開發
功能開發。
4.2.5.?提交代碼并推送到遠程開發分支
工程一旦修改,工程目錄和被修改過的文件將出現一個”>”。
然后,Commit修改
彈出窗口編輯提交信息,直接Commit或者CommitAndPush
上一步如果選的是Commit,就需要Push了
直接確定Push
Push完成后本次提交完成。
4.2.6.?切換到master分支并合并遠程開發分支的代碼
切換到master分支
同樣,合并前要保證合并雙方都是最新代碼,所以要在master分支pull一次,省略。然后直接合并
這次可以選擇本地分支了,記得當前的分支么?當前的分支是本地master所以這里選擇本地remote_T31分支,合并
如果出現沖突會提示
Eclipse里也會有提示,文件左邊有個紅色的,文件會如下圖
修改后,將修改后的沖突文件Add?To?Index.
確保將所有沖突文件處理完后,重新CommitAndPush一次。此時本地master分支領先遠程master分支3個修改,因為還沒有推送到遠程。同樣推送之前要代碼Review。
?
4.3.?項目代碼Review
4.3.1.?提交代碼Review
由于Eclipse沒有對Arcanist做任何支持,所以如果想用Arcanist做代碼Review,還是使用命令行吧。用法與3.3.無異,請看3.3.節。
總結
以上是生活随笔為你收集整理的关于git代码管理的详细操作流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 豆瓣上评分最高的9本必读书
- 下一篇: windows 11激活Office提示