Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サルでもわかるgit
Search
takashabe
January 28, 2015
Technology
1.6k
0
Share
サルでもわかるgit
とある勉強会で話したgitのブランチ戦略とかの資料です。
http://takashabe.hatenablog.com/entry/2015/01/28/215020
takashabe
January 28, 2015
More Decks by takashabe
See All by takashabe
より良いターミナルでの生活を求めて
takashabe
0
66
OpenCensusでcustom context propagationとexporterを書いた話 / OpenCensus with custom context propagation and exporter
takashabe
0
1.8k
pubsub with concurrent
takashabe
1
940
社内ISUCONを開催した話
takashabe
0
1.7k
ISUCON大反省会
takashabe
0
2k
gitのブランチ戦略
takashabe
8
6.1k
playで複数DBする
takashabe
0
1.6k
MySQLで高トラフィックに立ち向かう
takashabe
0
1.8k
GitHubの良さ
takashabe
2
2.3k
Other Decks in Technology
See All in Technology
JEDAI in Osaka 2026イントロ
taka_aki
0
280
Introduction to Bill One Development Engineer
sansan33
PRO
0
410
目的ファーストのハーネス設計 ~ハーネスの変更容易性を高めるための優先順位~
gotalab555
8
2k
AIを共同作業者にして書籍を執筆する方法 / How to Write a Book with AI as a Co-Creator
ama_ch
2
130
小説執筆のハーネスエンジニアリング
yoshitetsu
0
390
KGDC_13_Amazon Q Developerで挑む! 13事例から見えたAX組織変革の最前線_公開情報
kikugawa
0
110
生成AI時代のエンジニア育成 変わる時代と変わらないコト
starfish719
0
9.8k
猫でもわかるKiro CLI(CDKコーディング編)
kentapapa
1
130
AIエージェントの権限管理 1: MCPサーバー・ツールの Fine grained access control 編
ren8k
3
490
#jawsugyokohama 100 LT11, "My AWS Journey 2011-2026 - kwntravel"
shinichirokawano
0
340
AI駆動1on1〜AIに自分を育ててもらう〜
yoshiakiyasuda
0
120
60分で学ぶ最新Webフロントエンド
mizdra
PRO
34
18k
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
260
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
280
Designing Powerful Visuals for Engaging Learning
tmiket
1
340
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Odyssey Design
rkendrick25
PRO
2
570
Claude Code のすすめ
schroneko
67
220k
The SEO Collaboration Effect
kristinabergwall1
0
420
Statistics for Hackers
jakevdp
799
230k
Utilizing Notion as your number one productivity tool
mfonobong
4
290
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
370
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Transcript
サルでもわかるgithub Takashi Abe Mynet Inc. 28/01 2015
おまえだれよ @takashabe PHPでソシャゲ作ってます Scalaとかgolang,つけ麺が好き 社内ではgithubおじさんと呼ばれています 若手です
git移行時あるある
ブランチの子供が出来過ぎ てマージ困難
いつの間にかmasterに取り 込まれるコミット
None
ブランチ戦略決めましょう
メジャーなブランチ戦略 git-flow 5種類のブランチを使って機能開発、リリース、hotfix などの役割を明確に分けている 堅牢なモデルだが慣れないうちは煩雑 github flow masterと機能開発ブランチのみを持つ masterはすぐデプロイ対象するワイルドなモデル
git-flow
使用するブランチ develop 開発安定版ブランチ。featureブランチなどはここにマージされる feature 機能開発用ブランチ。機能開発やバグフィックスなどの開発を機能ごとに開発する ためのブランチ。最終的にdevelopにマージされる release リリース用ブランチ。リリース時にdevelopから作成される。リリース作業中でも developに対する変更を行えるようになる。 master
安定版ブランチ。リリースを終えたreleaseブランチからmasterにマージされる。 hotfix 緊急のバグ修正ブランチ。masterから作成され、releaseブランチを介さずにそのま まmasterにマージされる。
None
feature
release
hotfix
git-flowの特徴 releaseやhotfixのための手順が明確に定められていて プロダクションに上げるコードを堅牢に保つことが出来 る 使用するブランチが多いため手順が煩雑
github flow
使用するブランチ master 安定版、リリース用ブランチ。featureブランチは全て masterにマージされ、即座にデプロイ対象になる。 feature 機能開発用ブランチ。masterから作成され、そのまま masterにマージされる。
None
github flowの特徴 使用するブランチが最小限で理解しやすい masterを常にデプロイ可能な状態にしないといけない コードレビュー CI
弊チームのブランチ戦略
やりたいこと
やりたいこと 規模の大きい新機能など、複数人で1つの機能を作りた い リリースする機能は絞る場合がある リリース前にQA環境でQAしたい
git-flowのアレンジ
featureブランチの亜種を2 つ追加した
追加したfeatureブランチ feature-develop 1つの大きな機能における開発安定版。developから 作成され、feature-developから更にfeatureブランチ を作成する。featureブランチはfeature-developブラ ンチにマージされる。 QA QA用ブランチ。developから作成され、次回リリースに 盛り込むブランチを全てマージする。ここにはfeature- developブランチが含まれる。
機能開発フロー developブランチからfeature-developブランチを作成 feature-developブランチからfeatureブランチを作成 featureブランチをfeature-developブランチにマージ
リリースフロー feature-developブランチをQAブランチにマージ QA中の修正は全てQAブランチにマージ QAが完了したらreleaseブランチにマージ
None
GitHub導入時の話
GitHub導入時 メンバーのスキルセット 個人ではGit/GitHubを使っていた チーム開発でGitを使ったことはあるがGitHubは無し Git/GitHub共にそれほど使ったことがない
チーム開発でGitHubを使ったこ とがあるメンバーは居なかった
GitHubに慣れるために GitHubらしい開発フローの徹底 既存プロダクトはsvnでmasterブランチ1本運用だった Pull Request駆動開発の徹底 git-flowをベースにしたブランチ戦略の徹底
GitHubでの開発ってこんな感 じだということを浸透させる
GitHubについての社内勉強会やチームMTG Git自体は複雑なツールなので必要な機能だけつまみ 食いする 開発において最低限必要なフローをドキュメント化して 共有 機能開発〜Pull Requestを送るまでの手順 QA環境への適用手順 git rebaseとかgit
resetは使えれば便利だけど必須で はない
こんな時どうすれば良いの?ということを聞けるの超大 事 pull 出来ない! push 出来ない! コンフリクトした! 詳しい人が1人いると便利 仮に詳しい人がいなくてもGitHubの情報はググれば いくらでもある
それなりに開発が回るように なってきた
コミット粒度 Pull Request粒度 ラベルの運用
チームの習熟度によってフォーカス するレイヤを変える
tips
ブランチを作るとき ブランチ作成時は常にリモートブランチから作成するこ とを意識する git checkout -b feature/a origin/develop GitHubなどのGUIフロントエンドが使えればそれでも 古いローカルブランチから作成することによってリモート
の最新コミットが取り込まれない コンフリクトの原因になる
CUIでやる SourceTreeなど優秀なGUIツールを使うのもいいが、git の構造を知るにはCUIでやると捗る ローカル/リモートリポジトリの違い working copy,index,ローカルリポジトリの違い 慣れるとGUIでやるよりも捗る(と思う)