成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

我們已經從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的流程圖

 

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分支,但是我們也可以保留

 

Feature 分支

Release分支

分支名 release/*

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

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

 

Release分支

維護分支 Hotfix

分支名 hotfix/*

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

 

Release分支

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 工具,你只需要點擊下一步就行,工具幫你干這些事?。。?/p>

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

責任編輯:張子龍 來源: 博客園
相關推薦

2020-09-17 06:00:21

Git

2024-08-07 10:24:04

2020-11-23 07:27:22

Git Flow

2023-10-09 08:39:33

Git Flow分支管理模型

2022-09-15 07:44:32

Git全局配置本地配置

2021-03-08 07:46:53

Git開源控制系統

2009-11-26 10:31:55

配置IPS最佳實踐

2019-07-08 09:10:48

TigGitLinux

2021-10-13 13:51:24

MDKGit管理

2022-06-27 09:00:55

SwiftGit Hooks

2015-06-24 09:54:38

Git撤銷

2022-10-27 09:34:06

git撤銷

2017-02-08 13:33:34

AndroidJavaPhp

2024-07-22 14:14:01

2022-05-30 07:48:11

DevOps測試策略

2023-04-04 08:38:27

命令Git倉庫

2020-10-27 07:31:35

GitGit RevertGit Reset

2020-01-18 18:41:13

GitGit服務器開源

2024-06-03 00:01:00

2021-01-04 13:25:10

Git開源工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级毛片播放 | 免费成人在线网站 | 黄色一级毛片 | 日本精品在线播放 | 亚洲欧美国产精品久久 | 91xxx在线观看 | 亚洲天堂中文字幕 | 久久精品一 | 精品日韩 | 亚洲 中文 欧美 日韩 在线观看 | 久久久久久久国产精品影院 | 一级毛片观看 | 欧美精品一区二区三区蜜桃视频 | 日本涩涩网 | 亚洲综合日韩精品欧美综合区 | 欧美日韩1区2区3区 欧美久久一区 | 国产三级精品视频 | 午夜影院在线观看视频 | 午夜精品三区 | 日韩中文一区 | 中文一区二区视频 | 日韩中文欧美 | 99精品国产一区二区三区 | 偷拍第一页 | 国产视频2021 | 91精品国产91久久久久福利 | 自拍第一页 | 国产美女在线观看 | 欧美成年人网站 | 国产高清精品一区二区三区 | 欧美在线a | 一区精品视频 | 亚洲嫩草 | 日韩免费福利视频 | 美女视频黄的免费 | 91视频入口 | 激情五月婷婷丁香 | 久久国产精品无码网站 | 久久久久久国产精品免费免费狐狸 | 国产伦精品一区二区三区照片91 | av片在线播放 |