git flowコード管理およびブランチ作成マージ

3545 ワード

一、git flow紹介


1、マスター(メインブランチ)


主ブランチは、テストされた完全に安定したコードを格納します.すなわち、そのコードは、いつでも直接生産して使用できるコードです.プライマリブランチはコードのコミットを許可しません.releaseブランチは十分なテストを経た後、tagバージョン番号を打ってmasterブランチにマージします.

2、開発分岐


開発ブランチは,最初にmasterブランチから分離され,開発者が基本安定コードを格納するために用いられる.

3、feature(機能分岐)


機能ブランチは、新しい機能を開発するたびにdevelopからforkが出てくるfeatureブランチで、ブランチ名はfeature/*の形式で命名することができます.例えば、feature/需要番号-日付、feature/3124-190618、開発が完了してdevelopブランチにマージされ、使用しない場合は削除できます.

4、release(プリブランチ)


プリリリースブランチは、正式なバージョンをリリースする前に、プリリリースのバージョンをテストする必要があります.プリリリースブランチは一般的にdevelopから引き出され、releaseブランチバージョンの命名規範:4つの数字セグメントで表され、大きなバージョンです.リリースバージョンHotfixバージョンYYmmdd、release/2.0.190403のように、リリースが終了した後、tagを打ってDevelopとMasterブランチにマージします.

5、hotfix(バグ分岐の修正)


バグブランチを修正し、生産にバグが発生した場合、緊急に修復する必要がある.対応するreleaseバージョンを確定した後、masterからhotfixブランチを引き出し、修正してテストを完了した後、tagを打ってdevelopとmasterブランチ、例えばブランチ名hotfix/2.0.190411にマージする.

二、gitブランチの作成と合併


ブランチの作成
feature/3124-190618ブランチを作成する場合は、developからfeatureブランチを作成して切り替えます.
$git checkout develop#devブランチ$git checkout-b feature/3124-190618#作成してfeature/3124-190618ブランチに切り替え
作成したブランチfeatureをリモート・ウェアハウスにプッシュします.
 $ git push -u origin feature/31124-190618

ブランチのマージ:
feature/3124-190618ブランチをdevelopブランチにマージすると
先にブランチを切り替えます:$git checkout develop
再連結ブランチ:$git merge--no-ff feature/3124-190618
最終的にリモート・ウェアハウスにプッシュ:$git push origin develop

三、例を挙げて説明する


「コメント」機能を開発すると
1、既存倉庫$git cloneをクローンするhttp://git.uwscloud.com/uws/uws-data.git
2、feature/3124-190618ブランチの作成と切り替え
git checkout  develop # dev 
git checkout -b feature/31124-190618 # feature/31124-190618 

git push -u origin feature/31124-190618 # 

3、開発中、devコードを定期的にfeatureブランチに統合し、featureブランチは常に最新コードを保持する
git checkout feature/31124-190618 # feature/31124-190618 

git merge --no-ff develop # dev feature

4、開発完了提出
git add .

git commit -m 'finish discuss feature'

5、開発が完了し、テストを提出し、developからforkでreleaseを出し、featureをreleaseに合併し、releaseでbugをテストし、修正する
git checkout  develop # dev 
git checkout -b release/2.2.0-190618 # release/2.2.0-190618 

git merge --no-ff feature-31124-190618 # feature release/2.2.0-190618

6、直接オンラインテストに合格したreleaseバージョン、オンラインになったらreleaseをdevelopとmasterに合併する
# release 
git pull release/2.2.0-190618

#release develop push 
git checkout develop
git pull develop
git merge --no-ff release/2.2.0-190618
git push
#release master push 
git checkout master
git pull master
git merge --no-ff release/2.2.0-190618
git push

9、合成で生成した新しいノードに対して、tagを打つ
#  , 
git tag -a release/2.2.0-190618
git push --tags #push 

# release
git branch -d release/2.2.0-190618
git push origin --delete release/2.2.0-190618

10、オンライン上で問題が発生し、バグを修正するブランチを作成する
git checkout master
git checkout -b hotfix/2.2.0-190618

11、バグ解決後、hotfixはdevelopとmasterブランチに合併する
#hotfix develop push 
git checkout develop
git pull develop
git merge --no-ff hotfix/2.2.0-190618
git push

#hotfix master push 
git checkout master
git pull master
git merge --no-ff hotfix/2.2.0-190618
git push

#  tag
git tag -a hotfix/2.2.0-190618  # tag
git tag -a hotfix/2.2.0-190618 be6fabcd # tag
git push --tags  # tag 

 
参照先:http://www.ruanyifeng.com/blog/2012/07/git.html
参照先:https://blog.csdn.net/aaaaaaliang/article/details/79451598