<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      Git 在團隊中的最佳實踐--如何正確使用Git Flow

      2015-12-25 11:08  敏捷的水  閱讀(148303)  評論(97)    收藏  舉報

      我們已經從SVN 切換到Git很多年了,現在幾乎所有的項目都在使用Github管理, 本篇文章講一下為什么使用Git, 以及如何在團隊中正確使用。

      Git的優點

      Git的優點很多,但是這里只列出我認為非常突出的幾點。

      1. 由于是分布式,所有本地庫包含了遠程庫的所有內容。
      2. 優秀的分支模型,打分支以及合并分支,機器方便。
      3. 快速,在這個時間就是金錢的時代,Git由于代碼都在本地,打分支和合并分支機器快速,使用個SVN的能深刻體會到這種優勢。

      感興趣的,可以去看一下Git本身的設計,內在的架構體現了很多的優勢,不愧是出資天才程序員Linus (Linux之父) 之手

      版本管理的挑戰

      雖然有這么優秀的版本管理工具,但是我們面對版本管理的時候,依然有非常大得挑戰,我們都知道大家工作在同一個倉庫上,那么彼此的代碼協作必然帶來很多問題和挑戰,如下:

      1. 如何開始一個Feature的開發,而不影響別的Feature?
      2. 由于很容易創建新分支,分支多了如何管理,時間久了,如何知道每個分支是干什么的?
      3. 哪些分支已經合并回了主干?
      4. 如何進行Release的管理?開始一個Release的時候如何凍結Feature, 如何在Prepare Release的時候,開發人員可以繼續開發新的功能?
      5. 線上代碼出Bug了,如何快速修復?而且修復的代碼要包含到開發人員的分支以及下一個Release?

      大部分開發人員現在使用Git就只是用三個甚至兩個分支,一個是Master, 一個是Develop, 還有一個是基于Develop打得各種分支。這個在小項目規模的時候還勉強可以支撐,因為很多人做項目就只有一個Release, 但是人員一多,而且項目周期一長就會出現各種問題。

      Git Flow

      就像代碼需要代碼規范一樣,代碼管理同樣需要一個清晰的流程和規范

      Vincent Driessen 同學為了解決這個問題提出了 A Successful Git Branching Model

      下面是Git Flow的流程圖

      上面的圖你理解不了? 沒關系,這不是你的錯,我覺得這張圖本身有點問題,這張圖應該左轉90度,大家應該就很用以理解了。

      Git Flow常用的分支

      • Production 分支

      也就是我們經常使用的Master分支,這個分支最近發布到生產環境的代碼,最近發布的Release, 這個分支只能從其他分支合并,不能在這個分支直接修改

      • Develop 分支

      這個分支是我們是我們的主開發分支,包含所有要發布到下一個Release的代碼,這個主要合并與其他分支,比如Feature分支

      • Feature 分支

      這個分支主要是用來開發一個新的功能,一旦開發完成,我們合并回Develop分支進入下一個Release

      • Release分支

      當你需要一個發布一個新Release的時候,我們基于Develop分支創建一個Release分支,完成Release后,我們合并到Master和Develop分支

      • Hotfix分支

      當我們在Production發現新的Bug時候,我們需要創建一個Hotfix, 完成Hotfix后,我們合并回Master和Develop分支,所以Hotfix的改動會進入下一個Release

      Git Flow如何工作

      初始分支

      所有在Master分支上的Commit應該Tag

      Feature 分支

      分支名 feature/*

      Feature分支做完后,必須合并回Develop分支, 合并完分支后一般會刪點這個Feature分支,但是我們也可以保留

      Release分支

      分支名 release/*

      Release分支基于Develop分支創建,打完Release分之后,我們可以在這個Release分支上測試,修改Bug等。同時,其它開發人員可以基于開發新的Feature (記住:一旦打了Release分支之后不要從Develop分支上合并新的改動到Release分支)

      發布Release分支時,合并Release到Master和Develop, 同時在Master分支上打個Tag記住Release版本號,然后可以刪除Release分支了。

      維護分支 Hotfix

      分支名 hotfix/*

      hotfix分支基于Master分支創建,開發完后需要合并回Master和Develop分支,同時在Master上打一個tag

      Git Flow代碼示例

      a. 創建develop分支

      git branch develop
      git push -u origin develop    
      

      b. 開始新Feature開發

      git checkout -b some-feature develop
      # Optionally, push branch to origin:
      git push -u origin some-feature    
      
      # 做一些改動    
      git status
      git add some-file
      git commit    
      

      c. 完成Feature

      git pull origin develop
      git checkout develop
      git merge --no-ff some-feature
      git push origin develop
      
      git branch -d some-feature
      
      # If you pushed branch to origin:
      git push origin --delete some-feature    
      

      d. 開始Relase

      git checkout -b release-0.1.0 develop
      
      # Optional: Bump version number, commit
      # Prepare release, commit
      

      e. 完成Release

      git checkout master
      git merge --no-ff release-0.1.0
      git push
      
      git checkout develop
      git merge --no-ff release-0.1.0
      git push
      
      git branch -d release-0.1.0
      
      # If you pushed branch to origin:
      git push origin --delete release-0.1.0   
      
      
      git tag -a v0.1.0 master
      git push --tags
      

      f. 開始Hotfix

      git checkout -b hotfix-0.1.1 master    
      

      g. 完成Hotfix

      git checkout master
      git merge --no-ff hotfix-0.1.1
      git push
      
      
      git checkout develop
      git merge --no-ff hotfix-0.1.1
      git push
      
      git branch -d hotfix-0.1.1
      
      git tag -a v0.1.1 master
      git push --tags
      

      Git flow工具

      實際上,當你理解了上面的流程后,你完全不用使用工具,但是實際上我們大部分人很多命令就是記不住呀,流程就是記不住呀,腫么辦呢?

      總有聰明的人創造好的工具給大家用, 那就是Git flow script.

      安裝

      • OS X

      brew install git-flow

      • Linux

      apt-get install git-flow

      • Windows

      wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash

      使用

      • 初始化: git flow init

      • 開始新Feature: git flow feature start MYFEATURE

      • Publish一個Feature(也就是push到遠程): git flow feature publish MYFEATURE

      • 獲取Publish的Feature: git flow feature pull origin MYFEATURE

      • 完成一個Feature: git flow feature finish MYFEATURE

      • 開始一個Release: git flow release start RELEASE [BASE]

      • Publish一個Release: git flow release publish RELEASE

      • 發布Release: git flow release finish RELEASE
        別忘了git push --tags

      • 開始一個Hotfix: git flow hotfix start VERSION [BASENAME]

      • 發布一個Hotfix: git flow hotfix finish VERSION

      Git Flow GUI

      上面講了這么多,我知道還有人記不住,那么又有人做出了GUI 工具,你只需要點擊下一步就行,工具幫你干這些事!!!

      SourceTree

      當你用Git-flow初始化后,基本上你只需要點擊git flow菜單選擇start feature, release或者hotfix, 做完后再次選擇git flow菜單,點擊Done Action. 我勒個去,我實在想不到還有比這更簡單的了。

      目前SourceTree支持Mac, Windows, Linux.

      這么好的工具請問多少錢呢? 免費!!!!

      Git flow for visual studio

      廣大VS的福音
      GitFlow for Visual Studio

      最后

      我經常收到郵件問我,他想使用Git, 但是公司還在堅持使用SVN等,問我最么辦? 我的辦法是:

      第一: 把我這篇文章給他看

      第二: 立即找我,加入我們公司,我的郵箱是wangdeshui@outlook.com QQ: 353275476

      主站蜘蛛池模板: 久久亚洲精品无码va白人极品| 欧美成人精品三级网站视频| 一本久道久久综合中文字幕| 国产精品嫩草99av在线| 国产在线精品一区二区夜色| 日韩精品亚洲专在线电影| 特级做a爰片毛片免费看无码| 9lporm自拍视频区| 中文字幕有码日韩精品| 成人动漫在线观看| 国产不卡免费一区二区| 妇女自拍偷自拍亚洲精品| 欧美成人免费一区二区三区视频 | 国日韩精品一区二区三区| 欧美成人午夜精品免费福利| 国产亚洲精品第一综合另类无码无遮挡又大又爽又黄的视频 | 乱码午夜-极品国产内射| 国产精品一区二区国产主播| 国产日韩精品欧美一区灰| 在线视频不卡在线亚洲| 高清无码爆乳潮喷在线观看| 狠狠色丁香婷婷综合尤物| 国内精品视频区在线2021| av新版天堂在线观看| 特黄aaaaaaaaa毛片免费视频 | 精品国产成人午夜福利| 国产熟睡乱子伦视频在线播放 | 亚洲精品国偷自产在线| 亚洲精品国产av一区二区| 欧美老熟妇乱子伦牲交视频| 欧美高清精品一区二区| 九九热在线这里只有精品| 国产不卡精品视频男人的天堂 | 四房播色综合久久婷婷| 精品一区二区中文字幕| 东乌| 国产精品第一页一区二区 | 亚洲首页一区任你躁xxxxx| 另类专区一区二区三区| 在线a久青草视频在线观看| 日本肉体xxxx裸交|