日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何正确使用Git Flow 流程

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何正确使用Git Flow 流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

Git的優點

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

  • 由于是分布式,所有本地庫包含了遠程庫的所有內容。
  • 優秀的分支模型,打分支以及合并分支,機器方便。
  • 快速,在這個時間就是金錢的時代,Git由于代碼都在本地,打分支和合并分支機器快速,使用個SVN的能深刻體會到這種優勢。
  • 感興趣的,可以去看一下Git本身的設計,內在的架構體現了很多的優勢,不愧是出資天才程序員Linus (Linux之父) 之手

    版本管理的挑戰

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

  • 如何開始一個Feature的開發,而不影響別的Feature?
  • 由于很容易創建新分支,分支多了如何管理,時間久了,如何知道每個分支是干什么的?
  • 哪些分支已經合并回了主干?
  • 如何進行Release的管理?開始一個Release的時候如何凍結Feature, 如何在Prepare Release的時候,開發人員可以繼續開發新的功能?
  • 線上代碼出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 developgit 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 pushgit checkout develop git merge --no-ff release-0.1.0 git pushgit 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 pushgit checkout develop git merge --no-ff hotfix-0.1.1 git pushgit branch -d hotfix-0.1.1git 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

    from:?http://www.codeceo.com/article/how-to-use-git-flow.html

    總結

    以上是生活随笔為你收集整理的如何正确使用Git Flow 流程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。