完整的git流程


前言  

  大廠有着數量龐大的代碼庫以及復雜的權限驗證體系,囊括着開發、測試、上線的完整流程。因此必然會有一套代碼倉庫的管理流程,而不再是個人的代碼隨意開發、隨意提交。這也是我從小廠出來學習到的第一堂課——完整的git提交流程。下面我們以一位頭條大佬的倉庫為例,講解如何對線上倉庫進行開發fork倉  Interview-Book 這是頭條大佬的倉庫,我們可以看到他的分支信息

                              git-1.png
  我們可以看到有三個分支。假定這是一個發布到生產環境的應用,master一般用來存放線上分支,即這個倉庫存放的是線上正在運行的代碼,另外的倉庫便是開發分支,一般會把開發分支設置為默認倉庫,避免誤提交代碼線上(線上一般會禁止提交),我們先fork一個到自己的倉庫

本地開發

                              git-2.png
   接着我們就可以clone倉庫到本地
 
                        git-3.png

  拉取到本地后注意 VSC 右下角的分支,github默認是master分支,要手動切換到開發分支,並在remote中添加線上倉庫

  git remote add upstream https://github.com/Mountain-Buzhou/Interview-Book

  遠程倉庫是頭條大佬的倉庫,並且一般自己的github倉庫命名為origin 線上倉庫命名為upstream。這個時候我們就有了三個倉庫,分別是:

  1. 線上倉庫(發布項目的git倉庫,一般是擁有者是團隊或TL)
  2. 自己倉庫(自己fork線上倉庫到自己的github)
  3. vscode本地倉庫(git還在本地有一個倉庫)

  到目前為止,我們還不能直接進行開發,而需要從這個dev倉庫(在這里是version_alpha)切出一個分支

  git checkout -b feat/add-artical

  命名為feat:xxx, 即新添加的需求

                        git-4.png

  我們切換了一個新的分支,在這個新的分支上添加一些修改

                              git-5.png

  我把以前寫的一篇二叉樹相關的文章添加到頭條大佬Book中,接着進行commit, commit的內容也應該遵守規范,一般來說是

  1. fix:xx 表示修改了XX代碼
  2. feat:xx 新增了XX需求
  3. style:xx 修改了部分的樣式
  4. delete:xx 刪除了某些無用的部分

  標題最好能簡短的描述出這個commit干了些什么,具體內容可以在comment中詳細寫

提交PR

                                git-6.png

  feat感覺命名錯了,因此改成了add:增加二叉樹相關內容

                        git-7.png

  在合並之前我們需要做codereview, 在我們小組所有進行合並的代碼必須要進行codereview並且每一個組員都可以參加,codereview是讓自己進行提升以及幫助別人糾錯的一個重要途徑。通過看別人的代碼,可以了解到不同的思維。點擊 Files changed查看這次更改的代碼

                          git-8.png

  在代碼的行數處,鼠標移到上面就會出現一個 + 號,點擊便可以出現一個浮動的 comment 框,我們就可以針對這行代碼進行提問

合並PR

  確認無誤后,我們便可以等待頭條大佬合並PR到dev(這里是version_alpha)分支,頭條大佬合並以后我們就可以在本地倉庫 切換到自己的 遠程分支 origin/dev 拉取 upstream/dev到本地,然后再推送到 origin/dev 這樣就完成了一次完整的 PR

hotfix

  有些時候產品會要求緊急上線一個需求,這個時候需要在線上的代碼更新,因此我們會從線上分支切一個分支到自己倉庫,然后在這個分支上進行修改,修改完以后會提兩個PR命名為:hotfix:xxx 到dev倉庫和master倉庫

完整的流程

                                      git-9.png
 
   vscode不能處理代碼沖突,每次拉取有沖突的話都是直接報錯,沒有解決沖突的方式的話,裝插件,手動處理沖突 
  本文參考 大廠的第一堂課,完整的git流程, 此篇博客. 此篇博客大部分都是粘貼復制  大廠的第一堂課,完整的git流程這篇博客.   寫這篇博客, 主要是怕他那篇到時候沒了什么的. 所以還是記錄下吧
  
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM