SlideShare a Scribd company logo
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
こわくない Gitこわくない Git
こわくない Git
Kota Saito
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
Kouji Matsui
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
はじめようGit
はじめようGitはじめようGit
はじめようGit
techscore
 
プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」
Yoshinori Yamanouchi
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
Muyuu Fujita
 
社内Git勉強会向け資料
社内Git勉強会向け資料社内Git勉強会向け資料
社内Git勉強会向け資料
Hiroki Saiki
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
Hirohito Kato
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
 
Difference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketDifference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucket
Acodez IT Solutions
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
 
バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフローadd20
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
ktateish
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
Malk Zameth
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
viniciusban
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
민태 김
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
ktateish
 

What's hot (20)

こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
はじめようGit
はじめようGitはじめようGit
はじめようGit
 
プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
社内Git勉強会向け資料
社内Git勉強会向け資料社内Git勉強会向け資料
社内Git勉強会向け資料
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 
DVCSとGitの基礎
DVCSとGitの基礎DVCSとGitの基礎
DVCSとGitの基礎
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
Difference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketDifference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucket
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフロー
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
 

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