2021-03 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2021-03-15 (月)

現在の GitHub flow は v2 かな? [Git][GitHub]

@kyanny さんの記事を自分なりに整理してみる。



ずっと「マージした後にメインブランチを production デプロイする」というワークフローだと勘違いしていた。

昔は「マージ後にデプロイ」だったが、いつの頃からか「マージ前にデプロイ」に変わったらしい。


どこかでそんな話は聞いていたけど、実際のところはどうなんだろう?と以前から疑問だった。やっぱりそうだったか。


現在の GitHub flow


というか、GiHub の公式ガイドにそのものズバリ書いてあったのね。灯台下暗し...。
Understanding the GitHub flow · GitHub Guides

">" を数回クリックし、"Deploy" に進むと書いてある。

With GitHub, you can deploy from a branch for final testing in production before merging to main.

main ブランチにマージする前に、最後の確認をするために本番環境にデプロイする。

If your branch causes issues, you can roll it back by deploying the existing main branch into production.

もし問題が発生したら、main ブランチを本番環境にデプロイすることでロールバック出来る。

main ブランチの protection rule は "Require branches to be up to date before merging" を有効にしているのかな。いずれにせよ、main ブランチの commit 全部入りのブランチをデプロイしているはず。

以前の GitHub flow


2011/8/31 の GitHub Flow – Scott Chacon にまとまっている。この頃の GitHub は従業員 35 人だったそう。

"we can merge it into master for deployment" とあるので、この頃は確かに master ブランチにマージしたあとにデプロイしていたようだ。

自分なりの整理


Git は元々 Linux カーネルのバージョン管理をするためのツールとして開発された。その Linux カーネルの開発ではその性質上、Git Flow という重厚なブランチ戦略が使われていた。

GitHub flow は Web アプリケーションに合った軽量なブランチ戦略として誕生し、時を経てその内容も変わっていた。

以前の GitHub flow を v1、現在の GitHub flow を v2 と勝手にバージョニングすることにした。

P.S.
Apple っぽくするのだったら「新しい GitHub flow」なのかな?(^^;

追記(2021-03-15):
会社の同僚から「main(デフォルト)ブランチを常にリリース可能な状態に保つ」というルールが守られていれば、それが広義の GitHub flow でいいんじゃない?みたいな話を聞きました。なるほど。

2021-03 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

検索


最近の話題
- 2021-10-03
  RIZIN LANDMARK vol.1 の時間帯に発生した U-NEXT の障害体験メモ #RIZIN_LANDMARK #RIZIN_LANDMARK01
- 2021-09-27
  Terraform を使わずに Route 53 の DNS レコードを管理する方法を調べてみた
- 2021-08-25
  Manjaro でハイバネート出来るようにしたメモ
- 2021-08-07
  Chrome から Firefox に乗り換えたよ
- 2021-07-28
  3月に無償提供となった Microsoft Power Automate Desktop を今さらながら使ってみた
- 2021-06-10
  Dependabot の Terraform 1.0 対応が完了した件
- 2021-05-30
  暑がりの私にはマスクチェーンがとても合ってる
最近追記された記事
- 2021-03-14-1 (55日前)
- 2021-06-10-1 (122日前)
- 2021-03-15-1 (210日前)
- 2021-01-05-1 (251日前)
- 2014-11-02-2 (569日前)
- 2020-01-22-1 (575日前)
- 2019-02-11-1 (749日前)
- 2019-02-03-1 (749日前)
- 2019-01-28-1 (749日前)
- 2019-02-03-1 (791日前)
カテゴリ
- Android (3)
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (25)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (4)
- Book (115)
- Boxen (2)
- Bugsnag (1)
- capistrano (4)
- chalow (57)
- ChatWork (1)
- Chef (17)
- Chrome (4)
- Chromecast (1)
- CircleCI (15)
- clang (26)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (5)
- E-mail (9)
- elasticsearch (4)
- Emacs (225)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (21)
- Fluentd (4)
- ftp (2)
- Game (21)
- GCP (1)
- Gem (5)
- Git (10)
- GitHub (24)
- golang (11)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (7)
- Heroku (21)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iOS (1)
- iPad (1)
- iPhone (17)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Kubernetes (2)
- Langrich (7)
- LDAP (6)
- Life (25)
- Linux (7)
- Mackerel (1)
- macOS (1)
- Manjaro (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (2)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (13)
- Rake (2)
- RaspberryPi (2)
- Redash (1)
- RedHat (29)
- Redmine (3)
- RSpec (2)
- Ruby (54)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (4)
- Solaris9 (22)
- Spring (2)
- SQL (4)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Terraform (5)
- Twitter (15)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (26)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (19)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2021 : 01 02 03 04 05 06 07 08 09 10 11 12
2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12