Enviar búsqueda
Cargar
Pretty Good Branch Strategy for Git/Mercurial
•
4 recomendaciones
•
1,914 vistas
K
kwatch
Seguir
Pretty Good Branch Strategy for Version Control System such as Git or Mercurial.
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 25
Recomendados
Rbenv
Rbenv
Kohta Kunishima
Nseg57 ppaつくった話
Nseg57 ppaつくった話
hATrayflood
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門
AimingStudy
Froyo DalvikVM JIT
Froyo DalvikVM JIT
Tetsuyuki Kobayashi
Free cad 0.19.2 and cfdof (Japanese Ver.)
Free cad 0.19.2 and cfdof (Japanese Ver.)
YohichiShiina
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
murai1972
react勉強会 #3
react勉強会 #3
KentaIwadate
I have something to say about the buzz word "From Java to Ruby"
I have something to say about the buzz word "From Java to Ruby"
kwatch
Recomendados
Rbenv
Rbenv
Kohta Kunishima
Nseg57 ppaつくった話
Nseg57 ppaつくった話
hATrayflood
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門
AimingStudy
Froyo DalvikVM JIT
Froyo DalvikVM JIT
Tetsuyuki Kobayashi
Free cad 0.19.2 and cfdof (Japanese Ver.)
Free cad 0.19.2 and cfdof (Japanese Ver.)
YohichiShiina
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
murai1972
react勉強会 #3
react勉強会 #3
KentaIwadate
I have something to say about the buzz word "From Java to Ruby"
I have something to say about the buzz word "From Java to Ruby"
kwatch
文字列結合のベンチマークをいろんな処理系でやってみた
文字列結合のベンチマークをいろんな処理系でやってみた
kwatch
Underlaying Technology of Modern O/R Mapper
Underlaying Technology of Modern O/R Mapper
kwatch
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
kwatch
Cより速いRubyプログラム
Cより速いRubyプログラム
kwatch
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
Oktest - a new style testing library for Python -
Oktest - a new style testing library for Python -
kwatch
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?
kwatch
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
kwatch
なんでもID
なんでもID
kwatch
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
kwatch
Fantastic DSL in Python
Fantastic DSL in Python
kwatch
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
Migr8.rb チュートリアル
Migr8.rb チュートリアル
kwatch
HTMLデザインを崩さないテンプレートエンジンの作り方
HTMLデザインを崩さないテンプレートエンジンの作り方
kwatch
はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)
将 高野
Git flowの活用事例
Git flowの活用事例
Hirohito Kato
バージョン管理の断捨離
バージョン管理の断捨離
Kazushi Kamegawa
Ruby In Wheezy
Ruby In Wheezy
Youhei SASAKI
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Yohei Yasukawa
Más contenido relacionado
Destacado
文字列結合のベンチマークをいろんな処理系でやってみた
文字列結合のベンチマークをいろんな処理系でやってみた
kwatch
Underlaying Technology of Modern O/R Mapper
Underlaying Technology of Modern O/R Mapper
kwatch
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
kwatch
Cより速いRubyプログラム
Cより速いRubyプログラム
kwatch
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
Oktest - a new style testing library for Python -
Oktest - a new style testing library for Python -
kwatch
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?
kwatch
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
kwatch
なんでもID
なんでもID
kwatch
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
kwatch
Fantastic DSL in Python
Fantastic DSL in Python
kwatch
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
Migr8.rb チュートリアル
Migr8.rb チュートリアル
kwatch
HTMLデザインを崩さないテンプレートエンジンの作り方
HTMLデザインを崩さないテンプレートエンジンの作り方
kwatch
Destacado
(17)
文字列結合のベンチマークをいろんな処理系でやってみた
文字列結合のベンチマークをいろんな処理系でやってみた
Underlaying Technology of Modern O/R Mapper
Underlaying Technology of Modern O/R Mapper
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
Cより速いRubyプログラム
Cより速いRubyプログラム
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
Oktest - a new style testing library for Python -
Oktest - a new style testing library for Python -
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
なんでもID
なんでもID
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
Fantastic DSL in Python
Fantastic DSL in Python
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
Migr8.rb チュートリアル
Migr8.rb チュートリアル
HTMLデザインを崩さないテンプレートエンジンの作り方
HTMLデザインを崩さないテンプレートエンジンの作り方
Similar a Pretty Good Branch Strategy for Git/Mercurial
はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)
将 高野
Git flowの活用事例
Git flowの活用事例
Hirohito Kato
バージョン管理の断捨離
バージョン管理の断捨離
Kazushi Kamegawa
Ruby In Wheezy
Ruby In Wheezy
Youhei SASAKI
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Yohei Yasukawa
Git (運用編)
Git (運用編)
Naomichi Yamakita
分散バージョン管理システムGitの紹介
分散バージョン管理システムGitの紹介
tod esking
dvcs-kyoto
dvcs-kyoto
Naoya Inada
第7回oss貢献者賞 森-20120316
第7回oss貢献者賞 森-20120316
ksk_ha
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
構成管理のアンチパターン
構成管理のアンチパターン
akipii Oga
Reactive Extensions v2.0
Reactive Extensions v2.0
Yoshifumi Kawai
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
Shota Umeda
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
満徳 関
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
Zabbix meeting 2011 Oct 22th - Zabbixのバグ・パッチ報告の手順 - takanori suzuki
Zabbix meeting 2011 Oct 22th - Zabbixのバグ・パッチ報告の手順 - takanori suzuki
takanori suzuki
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021
Hideki Saito
Rails解説セミナー: Railsアプリケーションのデバッグ
Rails解説セミナー: Railsアプリケーションのデバッグ
Yohei Yasukawa
Composer
Composer
Shogo Kawahara
Similar a Pretty Good Branch Strategy for Git/Mercurial
(20)
はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)
Git flowの活用事例
Git flowの活用事例
バージョン管理の断捨離
バージョン管理の断捨離
Ruby In Wheezy
Ruby In Wheezy
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Git (運用編)
Git (運用編)
分散バージョン管理システムGitの紹介
分散バージョン管理システムGitの紹介
dvcs-kyoto
dvcs-kyoto
第7回oss貢献者賞 森-20120316
第7回oss貢献者賞 森-20120316
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
構成管理のアンチパターン
構成管理のアンチパターン
Reactive Extensions v2.0
Reactive Extensions v2.0
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Zabbix meeting 2011 Oct 22th - Zabbixのバグ・パッチ報告の手順 - takanori suzuki
Zabbix meeting 2011 Oct 22th - Zabbixのバグ・パッチ報告の手順 - takanori suzuki
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021
Rails解説セミナー: Railsアプリケーションのデバッグ
Rails解説セミナー: Railsアプリケーションのデバッグ
Composer
Composer
Más de kwatch
How to make the fastest Router in Python
How to make the fastest Router in Python
kwatch
【公開終了】Python4PHPer - PHPユーザのためのPython入門 (Python2.5)
【公開終了】Python4PHPer - PHPユーザのためのPython入門 (Python2.5)
kwatch
Javaより速いLL用テンプレートエンジン
Javaより速いLL用テンプレートエンジン
kwatch
How to Make Ruby CGI Script Faster - CGIを高速化する小手先テクニック -
How to Make Ruby CGI Script Faster - CGIを高速化する小手先テクニック -
kwatch
Benchmarker - A Good Friend for Performance
Benchmarker - A Good Friend for Performance
kwatch
How to Create a High-Speed Template Engine in Python
How to Create a High-Speed Template Engine in Python
kwatch
HTMLデザインを崩さないテンプレートエンジンの作り方パート2
HTMLデザインを崩さないテンプレートエンジンの作り方パート2
kwatch
PHPer100人にPythonを教えてみた
PHPer100人にPythonを教えてみた
kwatch
How to Make Designer-Friendly Template Engine
How to Make Designer-Friendly Template Engine
kwatch
ビュー層におけるキャッシュの問題点とその解決策
ビュー層におけるキャッシュの問題点とその解決策
kwatch
Basic Mechanism of OOPL
Basic Mechanism of OOPL
kwatch
PythonでRakeもどきを作ってみた
PythonでRakeもどきを作ってみた
kwatch
Más de kwatch
(12)
How to make the fastest Router in Python
How to make the fastest Router in Python
【公開終了】Python4PHPer - PHPユーザのためのPython入門 (Python2.5)
【公開終了】Python4PHPer - PHPユーザのためのPython入門 (Python2.5)
Javaより速いLL用テンプレートエンジン
Javaより速いLL用テンプレートエンジン
How to Make Ruby CGI Script Faster - CGIを高速化する小手先テクニック -
How to Make Ruby CGI Script Faster - CGIを高速化する小手先テクニック -
Benchmarker - A Good Friend for Performance
Benchmarker - A Good Friend for Performance
How to Create a High-Speed Template Engine in Python
How to Create a High-Speed Template Engine in Python
HTMLデザインを崩さないテンプレートエンジンの作り方パート2
HTMLデザインを崩さないテンプレートエンジンの作り方パート2
PHPer100人にPythonを教えてみた
PHPer100人にPythonを教えてみた
How to Make Designer-Friendly Template Engine
How to Make Designer-Friendly Template Engine
ビュー層におけるキャッシュの問題点とその解決策
ビュー層におけるキャッシュの問題点とその解決策
Basic Mechanism of OOPL
Basic Mechanism of OOPL
PythonでRakeもどきを作ってみた
PythonでRakeもどきを作ってみた
Pretty Good Branch Strategy for Git/Mercurial
1.
Pretty Good
Branch Strategy for Git/Mercurial Git/Mercurialのためのわかりやすいブランチ戦略 makoto kuwata http://www.kuwata-lab.com/
2.
Version Number
3.
Ver.1.2.3
4.
Ver.1.2.3 Major Version ・大幅な機能拡張 ・後方互換性はないことが多い
5.
Ver.1.2.3 Minor
Version ・後方互換性を保ったままでの拡張 (やむを得ず保たれないこともある)
6.
Ver.1.2.3
Patch Level ・バグ修正が目的(機能拡張はしない) ・後方互換性は極力保たれる
7.
Version v.s Branch
8.
Ver.1.2.3 Development Branch
Release Branch Release Tag
9.
Major Version
Development Branch 1 1 N N Minor Version Release Branch 1 1 N N Patch Level Release Tag
10.
Practical Example
11.
Major Versionごとに 開発用ブランチを用意
dev-1 (ver 1.x用branch)
12.
dev-1
(ver 1.x用branch) dev-2 (ver 2.x用branch) Major Versionを上げるたびに 新しい開発用ブランチを作成
13.
Minor Versionごとに リリース用ブランチを作成
rel-1.0 (ver 1.0用branch) dev-1 (ver 1.x用branch)
14.
リリースに伴う作業は リリース用ブランチで行う
rel-1.0 (ver 1.0用branch) dev-1 (ver 1.x用branch)
15.
リリースしたら タグを打つ
r1.0.0 rel-1.0 (ver 1.0用branch) dev-1 (ver 1.x用branch)
16.
リリースのたびに
タグを打つ r1.0.0 r1.0.1 rel-1.0 (ver 1.0用branch) dev-1 (ver 1.x用branch)
17.
Patch Levelを上げるたびに
これを繰り返す r1.0.0 r1.0.1 r1.0.2 rel-1.0 (ver 1.0用branch) dev-1 (ver 1.x用branch)
18.
Minor Versionを上げるときは 新しいリリース用ブランチを作成 rel-1.0
rel-1.1 (ver 1.0用branch) (ver 1.1用branch) dev-1 (ver 1.x用branch)
19.
Other Topics
20.
•
リリースブランチは削除しない(git flowとは違う!) • "master" や "trunk" は使わない (プロジェクトによって 開発用だったりリリース用だったりするので混乱の元) • Topic Branch は強く推奨される • リリースブランチに適用したコミットは、必要なら cherry-pickで開発用ブランチにも適用する(逆も可) • git cherry -v rel-1.0 dev-1 e! esom aw
21.
Conclusion
22.
r1.0.0
r1.0.1 rel-1.0 rel-1.1 (ver 1.0用branch) (ver 1.0用branch) dev-1 (ver 1.x用branch) dev-2 (ver 2.x用branch)
23.
One More Thing...
24.
~/.gitconfig [alias]
st = status -sb ci = commit co = checkout correct = commit --amend switch = checkout fork = checkout -b join = merge --no-ff stage = add staged = diff --cached stashed = stash list history = log --oneline --graph --date=short --decorate commitdiff = cherry -v
25.
おしまい