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
ブランチの作成
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
git checkout develop # dev
git checkout -b feature/31124-190618 # feature/31124-190618
git push -u origin feature/31124-190618 #
git checkout feature/31124-190618 # feature/31124-190618
git merge --no-ff develop # dev feature
git add .
git commit -m 'finish discuss feature'
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
# 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
# ,
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
git checkout master
git checkout -b hotfix/2.2.0-190618
#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