1. 程式人生 > 程式設計 >vscode如何設定預設開啟的瀏覽器為Chrome

vscode如何設定預設開啟的瀏覽器為Chrome

git 團隊開發流程規範

醒著的碼者 0.3662017.10.09 16:44:09字數 603閱讀 5,050

git開發流程規範

最近公司在由 svn 轉為 git 做專案管理,之前在小團隊開發的時候最多也就用到 dev 分支和 bugfix 分支,來到新的公司團隊比較大,各自負責各自的功能模組,為了大家更規範的開發,公司參考了一些資料。制定了一下規則。

分支命名規則

  1. 主分支:master
  2. 開發分支:developer
  3. 功能分支:feature - 分支名稱
  4. 分支釋出:release - 版本號
  5. bug 分支修復:bugfix - 版本號

操作步驟

  1. 管理員「專案負責人」建立 git 倉庫,建立 developer 分支

    git branch develop 
    git push -u origin develop
    
  2. 專案成員「開發者」clone 專案,在本地建立自己功能分支

    git clone 專案 git 地址 
    git checkout -b develop origin/develop
    
    建立本地功能分支
    git checkout -b feature-[name-desc] develop
    
  3. 在自己的分支上進行開發 :git addgit commit等,注意此時不要 push 到遠端分支(origin)。

  4. 功能完成後可以直接合並本地的 developer 分支後 push 到遠端倉庫,合併的時候很大機率發生衝突,此時需要 merge ,merge的時候確保不影響專案其他成員,如果多個人都操作了同一個類,最好當面確認後在進行修改。等合併完成確認無誤後,刪除本地開發分支

    git checkout develop 
    
    git pull origin develop //確保本地 developer 分支為最新的
    
    git merge feature-[name-desc] 
    
    git push 
    
    git branch -d feature-[name-desc] //刪除本地分支
    
    
  5. 釋出分支

    git checkout -b release-0.1 develop
    
    一旦準備好了發版,合併修改到 master 分支和 developer 分支上,刪除釋出分支
    
    合併修改到 master 分支
    git checkout master 
    git merge release-0.1 
    git push 
    
    合併修改到 developer 分支
    git checkout develop 
    git merge release-0.1 
    git push 
    
    刪除釋出分支
    git branch -d release-0.1
    
  6. 為 master 分支打發版 tag

    git checkout master 
    git tag -a 0.1 -m "Initial public release" master 
    git push --tags
    
  7. bug 修復分支,如果正在開發功能的同時,developer 上發現了線上 bug,或者未上線的 bug,我們可以開一個 bugfix 分支來修復 bug

    git checkout -b bugfix-#001(bug 分支名稱) master(或 developer)
    
    /***  去修 bug 吧 */
    ....
    /***  修復完成 */
    git checkout master  
    git merge bugfix-#001 
    
    git push 
    git branch -d bugfix-#001


    哈哈那個嗒

    圖文詳解如何利用Git+Github進行團隊協作開發



    團隊協作開發中,大部分都會用到版本控制軟體,比如Git、Svn等。本文將通過一個例項,詳細講解在真實的工作環境中,一個團隊應該如何利用Git+Github進行協作開發,即詳解Git工作流程。並就其中比較棘手的問題作出解答,比如如何解決衝突比較合適,如何建立各種型別的分支等。

    本文不會講解Git簡介、Git原理、Git基本用法等,有不瞭解的可以參考“ Git 參考手冊 ”。我們舉例演示的是GitFlow工作流的功能,這裡先放一張經典的GitFlow工作流圖示:

    其中涉及到的主要分支型別有:

    • master分支,即主分支。任何專案都必須有個這個分支。對專案進行tag或釋出版本等操作,都必須在該分支上進行。
    • develop分支,即開發分支,從master分支上檢出。團隊成員一般不會直接更改該分支,而是分別從該分支檢出自己的feature分支,開發完成後將feature分支上的改動merge回develop分支。同時release分支由此分支檢出。

    • release分支,即釋出分支,從develop分支上檢出。該分支用作發版前的測試,可進行簡單的bug修復。如果bug修復比較複雜,可merge回develop分支後由其他分支進行bug修復。此分支測試完成後,需要同時merge到master和develop分支上。

    • feature分支,即功能分支,從develop分支上檢出。團隊成員中每個人都維護一個自己的feature分支,並進行開發工作,開發完成後將此分支merge回develop分支。此分支一般用來開發新功能或進行專案維護等。

    • fix分支,即補丁分支,由develop分支檢出,用作bug修復,bug修復完成需merge回develop分支,並將其刪除。所以該分支屬於臨時性分支。

    • hotfix分支,即熱補丁分支。和fix分支的區別在於,該分支由master分支檢出,進行線上版本的bug修復,修復完成後merge回master分支,並merge到develop分支上,merge完成後也可以將其刪除,也屬於臨時性分支。

    下邊我們一步步拆分講解各種型別分支的用法。

    (1)假設團隊就一個人“xianhu”,做一個叫TestGit的專案,並將其程式碼託管在Github上。首先需要在Github上新建一個專案TestGit:

    按照Github上的提示,在本地新建一個專案,並關聯到Github上的orgin/master。此時開發一個很小的demo功能,並提交到線上,並在master分支上進行打tag操作,並命名為v0.1。此時的GitFlow工作流為:

    (2)如果此時master分支的程式碼正在線上執行,而且又需要開發新功能,則不能在master分支上直接修改。一個比較好的策略是在master分支上新建並檢出develop分支,新功能的開發在develop分支上進行,此時記得將develop分支提交到遠端:

    git branch develop master    # 從master分支上新建develop分支
    git checkout develop    # 檢出develop分支
    # 此處可進行功能開發,並add和commit到develop分支
    git push origin develop    # 推送develop分支到遠端的origin/develop

    即Github上保持兩個分支:master和develop。目的是為以後團隊協作更新develop分支做準備。此時Github上為:

    此時會出現兩種情況:

    • 線上版本的程式碼(master分支)出現了緊急bug,需要修復。這裡用到了hotfix分支。
    • git checkout master    # 切換回master分支
      git checkout -b hotfix master    # 新建hotfix分支,並切換到該分支
      # 做一些bug修復工作
      git checkout master    # 切換回master分支
      git merge --no-ff hotfix    # 合併hotfix分支,此時bug已被修復(無衝突)
      git tag v0.2    # 新建tag v0.2
      git push origin master    # 推送master分支程式碼到遠端
      git push origin --tags    # 推送tag到遠端
    • develop分支上的功能開發完成了,需要進行測試和提交。這裡用到了release分支。
    • git checkout develop    # 切換回develop分支
      git checkout -b release01 develop    # 新建release分支,並切換到該分支
      
      # 做一些測試、bug修復等工作
      
      git checkout develop    # 切換回develop分支
      git merge --no-ff release01  # 合併release01分支到develop分支(無衝突)
      git push origin develop    # 推送develop分支到遠端
      
      git checkout master    # 切換回master分支
      git merge --no-ff release01   # 合併release01分支到master分支(無衝突)
      git tag v0.3    # 新建tag v0.3
      git push origin master    # 推送master分支程式碼到遠端
      git push origin --tags    # 推送tag到遠端

    此時GitFlow工作流為:

    (3)這裡可以繼續develop分支,並不斷push到遠端。此時如果團隊成員增加,多人需要開發不同的功能,這裡就會用到feature分支。團隊中的每個人都從Github克隆一個專案,然後新建自己的feature分支。

    git clone xxxx.git
    git checkout develop
    git checkout -b feature-xx develop    # 從develop分支新建並檢出feature分支

    此時“xianhu”做如下操作,並首先第一個提交到了Github遠端:

    git checkout -b feature-hu develop    # 從develop分支新建並檢出feature分支
    # 這裡可以進行一些功能開發,並不斷的add和commit
    git checkout develop    # 切換回develop分支
    git pull origin develop    # 更新遠端程式碼,看develop分支是否有更新(無更新)
    git checkout feature-hu    # 切換回feature分支
    git rebase develop    # 合併develop分支到feature分支,並解決衝突(無衝突)
    git checkout develop    # 切換回develop分支
    git merge --no-ff feature-hu    # 合併feature分支到develop分支
    git push origin develop   # 推送develop分支到遠端

    此時的GitFlow工作流為:

    對於團隊其他成員,比如zz,操作如下,並打算在“xianhu”提交後進行push操作:

    git checkout -b feature-zz develop    # 從develop分支新建並檢出feature分支
    # 這裡可以進行一些功能開發,並不斷的add和commit
    git checkout develop    # 切換回develop分支
    git pull origin develop    # 更新遠端程式碼,看develop分支是否有更新(有更新)
    git checkout feature-hu    # 切換回feature分支
    git rebase develop    # 合併develop分支到feature分支,並解決衝突(有衝突)
    # 這裡需要進行衝突解決
    git add .    # 解決完衝突之後執行add操作
    git rebase --continue    # 繼續剛才的rebase操作
    git checkout develop    # 切換回develop分支
    git merge --no-ff feature-zz    # 合併feature分支到develop分支(無衝突)
    git push origin develop   # 推送develop分支到遠端

    如果團隊成員在合併feature分支到develop分支後還需要繼續開發,則檢出自己的feature分支繼續操作,並重覆上述過程即可。這裡需要注意--no-ff引數,其目的是讓commit的流程更加清晰,具體為什麼可自行百度。

    xianhu這邊進行pull操作,即可看到zz進行的操作。此時的GitFlow工作流為:

    (4)如果此時需要進行測試、發版操作,則需要再次新建並檢出release分支,重複(2)的步驟。完成之後的GitFlow工作流為:

    這裡就完成了從版本v0.1到v1.0的迭代開發,並詳細解釋瞭如何利用Git+Github進行團隊協作開發。文章中沒有用到fix分支,這種分支的用法和feature分支類似,大家可以自己體會。

    最後詳細解釋一下上張圖:

    • xianhu在master分支上完成v0.1版本開發,“done demo in master”
    • 發現master分支上有bug,需緊急修復。新建並檢出hotfix分支進行bug修復,並merge回master分支,釋出版本v0.2。
    • xianhu新建並檢出develop分支進行迭代開發,然後在develop分支上檢出release01分支,進行發版前測試和bug修復。“fix bugs in release01”,完成後將release01分支merge回develop和master分支,並在master分支上釋出版本v0.3。
    • xianhu繼續開發develop分支。此時團隊成員增加,團隊中的每個人都在develop的基礎上新建並檢出自己的feature分支,開發完成後merge回develop分支。這裡利用到了rebase操作和衝突解決等,需要特別注意一點步驟。
    • xianhu在develop分支上檢出release02分支,再次進行發版前測試和bug修復,“fix bugs in release02”,完成後將release02分支merge回develop和master分支,並在master分支上釋出版本v1.0。

    這裡只用到和解釋了GitFlow工作流,團隊協作開發也可以用Pull Requests或者其他方式,找一個合適自己團隊和具體業務的協作方式即可。另外,Git博大精深,想要完全精通也絕非易事,只能是一邊學一邊用。

    來自:https://zhuanlan.zhihu.com/p/23478654