SlideShare a Scribd company logo
1 of 64
M
master
本番
=
課題Aのために、ブランチAを作る
Make branch A
branch A
A
課題Aのコミットを作成
commit A
commit A
課題Bのために、ブランチBを作り
Make branch B
branch B
B
課題Bのコミットを作成
commit B
commit B
A
課題Aの開発が完了し
本番へアップする
ブランチAを
masterへ
マージする
=
A
マージすると
masterに
commitAが
記録される
A
MA
master
masterが進む
master
NGパターン
MA
B
このときBはこういう状態
MA
B
A
Aのコミットを取り入れるために…
MA
BA
ブランチA
にリベース
MA
BA
MA
BA
ブランチBの中に
AとBの内容が
入っている
ブランチBの修正として
コミットAが
記録されてしまっている
=
↑これがNG
MA
BA
M
このままマージ
すると・・・
MA
BA
MA B
MA
BA
MA B
Aが二つになる
masterの中に
Aが二つになる
OKパターン
MA
B
このときBはこういう状態
MA
B
A
Aはすでにmasterに
マージされているので
MA
B
A
masterに
リベースする
B
MA
B
A
こうすると、
起点のmasterに
すでにAが
含まれている
MA
B
A
ブランチBの中に
コミットAは
記録されていない
ブランチBの修正に
コミットAが含まれているが、
ブランチBの
範囲
MA
B
A
M
ブランチBを
masterへ
マージする
MA
B
A
M
ブランチBを
masterへ
マージする
B
MA
A
MB
B
masterが進む
A MB
AとBが
正しくマージされる
では、AとBとCがあって・・・
C
B
A
アップしたいときは?
1. Aだけ先にアップ
2. BとCをその後で一緒に
(ぜひ考えてみてください)
いろいろやり方はありますが、
まずはAをアップ
C
B
A
C
B
A
M
C
B
MA
つぎに、BとCの
アップの準備
C
B
MA
C
B
MA
BとCをそれぞれ
リベースする
C
B
MA
C
B
MA
C
B
masterに
一つずつマージ
MA
C
B
M
MA
C
MB
MA
C
MB
MA
C
MB M
MA
C
MB M
MA
C
MB
MA
C
MB
C
MA MB
C
M
MA MB
C
M
でも、これでは
BとCのアップが面倒…
そういうときに
使うのが
リリースブランチ
C
B
MA
C
B
MA
masterから
リリースブランチを
作成
C
B
MA
BとCを
リリースブランチに
マージ
C
B
MA
R
C
MA
R R
C
MA
R R
リリースブランチに
マージする時に
conflictしたら
ソースを見て解消する
MA
R R
リリースブランチが
正しく作れたら
masterにマージ
MA
R R
M
MA
R R
MR R
MA MR R
ブランチBの
内容
ブランチCの
内容
今日はここまで!
お疲れ様でした

More Related Content

What's hot

Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例Hirohito Kato
 
Dealing with Merge Conflicts in Git
Dealing with Merge Conflicts in GitDealing with Merge Conflicts in Git
Dealing with Merge Conflicts in Gitgittower
 
Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfYoshiki Tanaka
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理H2O Space. Co., Ltd.
 
初心者 Git 上手攻略
初心者 Git 上手攻略初心者 Git 上手攻略
初心者 Git 上手攻略Lucien Lee
 
CI/CDツール比較してみた
CI/CDツール比較してみたCI/CDツール比較してみた
CI/CDツール比較してみたShoya Kai
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹Max Ma
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學littlebtc
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
Introduction To Git For Version Control Architecture And Common Commands Comp...
Introduction To Git For Version Control Architecture And Common Commands Comp...Introduction To Git For Version Control Architecture And Common Commands Comp...
Introduction To Git For Version Control Architecture And Common Commands Comp...SlideTeam
 
社内Git勉強会向け資料
社内Git勉強会向け資料社内Git勉強会向け資料
社内Git勉強会向け資料Hiroki Saiki
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013DQNEO
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - GitAlan Tsai
 
5分でわかるクリーンアーキテクチャ
5分でわかるクリーンアーキテクチャ5分でわかるクリーンアーキテクチャ
5分でわかるクリーンアーキテクチャKenji Tanaka
 

What's hot (20)

Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 
Dealing with Merge Conflicts in Git
Dealing with Merge Conflicts in GitDealing with Merge Conflicts in Git
Dealing with Merge Conflicts in Git
 
Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdf
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
 
初心者 Git 上手攻略
初心者 Git 上手攻略初心者 Git 上手攻略
初心者 Git 上手攻略
 
CI/CDツール比較してみた
CI/CDツール比較してみたCI/CDツール比較してみた
CI/CDツール比較してみた
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
 
いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
Introduction To Git For Version Control Architecture And Common Commands Comp...
Introduction To Git For Version Control Architecture And Common Commands Comp...Introduction To Git For Version Control Architecture And Common Commands Comp...
Introduction To Git For Version Control Architecture And Common Commands Comp...
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Git
GitGit
Git
 
社内Git勉強会向け資料
社内Git勉強会向け資料社内Git勉強会向け資料
社内Git勉強会向け資料
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
 
5分でわかるクリーンアーキテクチャ
5分でわかるクリーンアーキテクチャ5分でわかるクリーンアーキテクチャ
5分でわかるクリーンアーキテクチャ
 

ブランチを綺麗に保ち、どうやって本番アップするのか