前言
大廠有著數(shù)量龐大的代碼庫以及復(fù)雜的權(quán)限驗證體系,囊括著開發(fā)、測試、上線的完整流程。因此必然會有一套代碼倉庫的管理流程,而不再是個人的代碼隨意開發(fā)、隨意提交。這也是我從小廠出來學(xué)習(xí)到的第一堂課——完整的git提交流程。下面我們以一位頭條大佬的倉庫為例,講解如何對線上倉庫進行開發(fā)
fork倉庫
Interview-Book 這是頭條大佬的倉庫,我們可以看到他的分支信息
我們可以看到有三個分支。假定這是一個發(fā)布到生產(chǎn)環(huán)境的應(yīng)用,master一般用來存放線上分支,即這個倉庫存放的是線上正在運行的代碼,另外的倉庫便是開發(fā)分支,一般會把開發(fā)分支設(shè)置為默認倉庫,避免誤提交代碼線上(線上一般會禁止提交),我們先fork一個到自己的倉庫
本地開發(fā)
接著我們就可以clone倉庫到本地
拉取到本地后注意 VSC 右下角的分支,github默認是master分支,要手動切換到開發(fā)分支,并在remote中添加線上倉庫
git remote add upstream https://github.com/Mountain-Buzhou/Interview-Book
遠程倉庫是頭條大佬的倉庫,并且一般自己的github倉庫命名為origin 線上倉庫命名為upstream。這個時候我們就有了三個倉庫,分別是:
- 線上倉庫(發(fā)布項目的git倉庫,一般是擁有者是團隊或TL)
- 自己倉庫(自己fork線上倉庫到自己的github)
- vscode本地倉庫(git還在本地有一個倉庫)
到目前為止,我們還不能直接進行開發(fā),而需要從這個dev倉庫(在這里是version_alpha)切出一個分支
git checkout -b feat/add-artical
命名為feat:xxx, 即新添加的需求
我們切換了一個新的分支,在這個新的分支上添加一些修改
我把以前寫的一篇二叉樹相關(guān)的文章添加到頭條大佬Book中,接著進行commit, commit的內(nèi)容也應(yīng)該遵守規(guī)范,一般來說是
- fix:xx 表示修改了XX代碼
- feat:xx 新增了XX需求
- style:xx 修改了部分的樣式
- delete:xx 刪除了某些無用的部分
標題最好能簡短的描述出這個commit干了些什么,具體內(nèi)容可以在comment中詳細寫
提交PR
feat感覺命名錯了,因此改成了add:增加二叉樹相關(guān)內(nèi)容
在合并之前我們需要做codereview, 在我們小組所有進行合并的代碼必須要進行codereview并且每一個組員都可以參加,codereview是讓自己進行提升以及幫助別人糾錯的一個重要途徑。通過看別人的代碼,可以了解到不同的思維。點擊 Files changed查看這次更改的代碼
在代碼的行數(shù)處,鼠標移到上面就會出現(xiàn)一個 + 號,點擊便可以出現(xiàn)一個浮動的 comment 框,我們就可以針對這行代碼進行提問
合并PR
確認無誤后,我們便可以等待頭條大佬合并PR到dev(這里是version_alpha)分支,頭條大佬合并以后我們就可以在本地倉庫 切換到自己的 遠程分支 origin/dev 拉取 upstream/dev到本地,然后再推送到 origin/dev 這樣就完成了一次完整的 PR
hotfix
有些時候產(chǎn)品會要求緊急上線一個需求,這個時候需要在線上的代碼更新,因此我們會從線上分支切一個分支到自己倉庫,然后在這個分支上進行修改,修改完以后會提兩個PR命名為:hotfix:xxx 到dev倉庫和master倉庫