• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Gitのすすめ
 

Gitのすすめ

on

  • 1,474 views

 

Statistics

Views

Total Views
1,474
Views on SlideShare
550
Embed Views
924

Actions

Likes
4
Downloads
5
Comments
0

5 Embeds 924

http://tech.d-itlab.co.jp 911
http://cloud.feedly.com 10
http://reader.aol.com 1
http://www.inoreader.com 1
http://feedly.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Gitのすすめ Gitのすすめ Presentation Transcript

    • gitのすすめ デンソーアイティーラボラトリ 吉田悠一
    • プレゼンで出てくる話はすべてフィクションです。 実在の人物や団体などとはたぶん関係ありません。
    • subversion?           ____        / \  /\  キリッ .     / (ー)  (ー)\     /   ⌒(__人__)⌒ \     |      |r┬-|    |   さて,今日もsubversionからチェックアウトして      \     `ー'´   /   コーディングだお!!     ノ            \   /´               ヽ
    • subversion?             ___        /      \       /ノ  \   u. \ !?     / (●)  (●)    \      |   (__人__)    u.   | クスクス>      \ u.` ⌒´      /     ノ           \   /´               ヽ
    • subversion?          ____ <クスクス   /       \!??       /  u   ノ  \     /      u (●)  \     |         (__人__)|      \    u   .` ⌒/     ノ           \   /´               ヽ
    • git・・・・? svn?? svn 自重
    • って言われても        ____      /      \    / ─    ─ \   /   (○)  (○)   \ SVNじゃだめなのかお…   |      (__人__)    |     \     ` ⌒´     /
    •    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__) いまだにsvnか・・・・・   |     ` ⌒´ノ 日付でファイルが増えていくよりマシだが・・・ .  |         }   .  ヽ        }  エンジニアならgitを使うだろJK    ヽ     ノ        \    /    く  \        \    |     \   \         \     |    |ヽ、二⌒)、          \
    • そんなこんなで        ____      /⌒  ⌒\    /( ●)  (●)\   /::::::⌒(__人__)⌒:::::\  やらない夫!   |     |r┬-|     |  gitについてやる夫に教えろお!   \      `ー'´     /
    •    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__) まぁいいだろう・・・・   |     ` ⌒´ノ  .  |         }   .  ヽ        }  (このプレゼン作るのに2時間かかったんだが)    ヽ     ノ        \    /    く  \        \    |     \   \         \     |    |ヽ、二⌒)、          \
    • git • 分散型ソースコード管理ツール • SVN, CVSとは違うよ • リーナスさんがLinuxカーネルの開発を進めるた めに開発
    • git理解への早道 • まずコンセプトを理解する • 仕様,コマンドから始めると死ねる
    • そんなこんなで       / ̄ ̄\     /ノ(  ゝ 、_,ノヽ        r'´ ゙ヽ      /`ヽ          ____     | ⌒(( ●)(●)        ヽ   ヽ从从/   /        \   /\ .    |     (__人__) /⌒l     \  \/  /て       (●)liil(●) ノ( \      |     ` ⌒´ノ |`'''|    ∑ ヽ/  /  そ     / (__人__)  ⌒   \     / ⌒ヽ     }  |  |      ,)/  / \ く     |   |!!il|!|!l|         |  コンセプトとかいいからさっさと    /  へ  \   }__/ /      /   /\  \      \i⌒ヽェェ|      /  使い方を教えるお!!!  / / |      ノ   ノ    /   / YYY\   \     \ \  /⌒,/´ ( _ ノ    |      \´    /   /       \   \     / \ \/  /l        |       \_,/   /         \   \_/    \__ノ |\        .|            /            \             |) )        ヽ          /               \           ,r' /          \      , '´                   `' ,        /ー'′           \     (                     )     /             \    \                  /    / 使い方からいくとsvnとの乖離とコマンド大杉のせいで挫折するんだよ!
    • コンセプト・・・ですか・・・         ____        /      \        /  _ノ  ヽ、_  \      そんなこと言われても     /  (●)  (●)   \    どうすりゃいいのさ     |     (__人__)    |    コンセプトとかわからないお     \     ` ⌒´     /    /´           `\   /  /          l  l __l  l_.[] _____/_/__   \, ´-'ヽ     ヾ_ノ      |      |      |__   コロ・・・・     _____\    コロ・・・・    ()__)」
    •    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__)     ゆっくりはじめるぞ   |     ` ⌒´ノ  .  |         }   .  ヽ        }      ヽ     ノ        \    /    く  \        \    |     \   \         \     |    |ヽ、二⌒)、          \
    • gitのコンセプト
    • リポジトリ • すべてのリポジトリは並列 • すべてのリポジトリは今までの履歴を持つ
    • commitを理解する
    • 空のリポジトリ
    • ファイルを追加したり 編集・・・
    • git add, git commitで コミット
    • 新しいコミットができる hoge.cを追加
    • コミットに含まれるもの hoge.cを追加 revision(SHAハッシュ値) コミットした人 コミットを作った人 ファイル構造 一つ前のrevision(ポインタみたいな)
    • コミットに含まれるもの hoge.cを追加 revision(SHAハッシュ値) コミットした人 コミットを作った人 ファイル構造 一つ前のrevision(ポインタみたいな) リポジトリに含まれる すべてのデータは このコミットなのです
    • コミットに含まれるもの hoge.cを追加 revision(SHAハッシュ値) コミットした人 コミットを作った人 ファイル構造 一つ前のrevision(ポインタみたいな) svnのように番号で 管理されないこと に気をつけて
    • さらに重ねると hoge.cを追加 hoge.cを編集 hoge.cを編集 こういうグラフをコミットグラフといいます backポインタが常にあるので すべてのコミットを るとファイル構造を常に再現できます
    • 実際にやってみよう Mac-mini:Desktop sonson$ mkdir test Mac-mini:Desktop sonson$ cd test
    • 実際にやってみよう Mac-mini:Desktop sonson$ mkdir test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ リポジトリ作成
    • 実際にやってみよう Mac-mini:Desktop sonson$ mkdir test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ Mac-mini:test sonson$ ls -al total 0 drwxr-xr-x 3 sonson staff 102 3 13 09:53 . drwx------+ 22 sonson staff 748 3 13 09:53 .. drwxr-xr-x 10 sonson staff 340 3 13 09:53 .git この不可視ファイルの中身がリポジトリのデータ
    • 実際にやってみよう Mac-mini:Desktop sonson$ mkdir test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ Mac-mini:test sonson$ ls -al total 0 drwxr-xr-x 3 sonson staff 102 3 13 09:53 . drwx------+ 22 sonson staff 748 3 13 09:53 .. drwxr-xr-x 10 sonson staff 340 3 13 09:53 .git Mac-mini:test sonson$ touch main.c
    • 実際にやってみよう Mac-mini:Desktop sonson$ mkdir test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ Mac-mini:test sonson$ ls -al total 0 drwxr-xr-x 3 sonson staff 102 3 13 09:53 . drwx------+ 22 sonson staff 748 3 13 09:53 .. drwxr-xr-x 10 sonson staff 340 3 13 09:53 .git Mac-mini:test sonson$ touch main.c Mac-mini:test sonson$ git add main.c gitのファイルツリーの中に追加する
    • 実際にやってみよう Mac-mini:Desktop sonson$ mkdir test Mac-mini:Desktop sonson$ cd test Mac-mini:test sonson$ git init Initialized empty Git repository in /Users/sonson/Desktop/test/.git/ Mac-mini:test sonson$ ls -al total 0 drwxr-xr-x 3 sonson staff 102 3 13 09:53 . drwx------+ 22 sonson staff 748 3 13 09:53 .. drwxr-xr-x 10 sonson staff 340 3 13 09:53 .git Mac-mini:test sonson$ touch main.c Mac-mini:test sonson$ git add main.c Mac-mini:test sonson$ git commit -m "First commit, added main.c" [master (root-commit) d3f62cb] First commit, added main.c 0 files changed create mode 100644 main.c 新しいコミットが作成された
    • git • hashの一意性 • 差分のツリー構造 • 常に後ろに れる
    • わかった?      ____    /      \ ( ;;;;(   /  _ノ  ヽ__\) ;;;;) /    (─)  (─ /;;/ |       (__人__) l;;,´ コミットの管理がかわっただけだお? /      ∩ ノ)━・'/  (  \ / _ノ´.|  |  結局svnと同じじゃないかお・・・・? .\  "  /__|  |   \ /___ /
    •    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__)  ツリー構造で管理していて,   |     ` ⌒´ノ  ファイルの部分ごとの差分もちゃんと取れる .  |         }   良さがあるんだが・・・・. .  ヽ        }   まぁ,ここはそのままでいいだろう    ヽ     ノ        \    /    く  \        \    |     \   \         \     |    |ヽ、二⌒)、          \
    • clone/push/pullを理解する
    • どこかにリポジトリがある hoge.cを追加 hoge.cを編集 hoge.cを編集
    • コピーする(くろーん) hoge.cを追加 hoge.cを編集 hoge.cを編集 clone hoge.cを追加 hoge.cを編集 hoge.cを編集
    • コードを書く hoge.cを追加 hoge.cを編集 hoge.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 hoge.cを追加 hoge.cを編集 hoge.cを編集
    • コミットする hoge.cを追加 hoge.cを編集 hoge.cを編集hoge.cを追加 hoge.cを編集 hoge.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 コミット
    • pushする push hoge.cを追加 hoge.cを編集 hoge.cを編集hoge.cを追加 hoge.cを編集 hoge.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 コミット
    • ウマー hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 push hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加
    • pullは? hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 bar.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 あ,なんか他のリポジトリが 更新されてる!!
    • pullは? hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 pull hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 bar.cを編集
    • ひっぱってくる 更新された! hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 bar.cを編集 hoge.cを追加 hoge.cを編集 hoge.cを編集 bar.cを追加 bar.cを編集
    • わかった?      ____    /      \ ( ;;;;(   /  _ノ  ヽ__\) ;;;;) /    (─)  (─ /;;/ |       (__人__) l;;,´ コミットと何が違うのかお? /      ∩ ノ)━・'/  (  \ / _ノ´.|  |  pullとpushの呼び方が変わっただけかお・・・・? .\  "  /__|  |   \ /___ /
    •    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__) 確かにな・・・・・   |     ` ⌒´ノ 実際の開発の風景を思い浮かべると .  |         }  リポジトリがpush/pullで対等であることの .  ヽ        }  よさがわかると思うぞ    ヽ     ノ        \    /    く  \        \    |     \   \         \     |    |ヽ、二⌒)、          \
    • 対等性 - 公開リポジトリの場合 S川くん Y田さん
    • 対等性 - 社内リポジトリの場合 S川くん Y田さんのコードに バグがある!! どーしよー Y田さん
    • 人間関係 S川くん 間違ってコミットしたら怒られる の怖いけど 直したい・・・・ Y田さん
    • やっちゃったのか S川くん 実際,前にY田さんのリポジト リめちゃめちゃにしちゃって Y田さんのリポジトリにPushする権限がない し・・・・・ Y田さん
    • そんなときは S川くん clone どっかのリポジトリY田さん
    • 対等性 S川くん commit Y田さん
    • 対等性 S川くん バグ直しましたよ!! こんなもんで,どうですか? Y田さん
    • 対等性 S川くん あ,いいじゃん Y田さん
    • 対等性 S川くん pull Y田さん pullする
    • 対等性 S川くん やったーバグ治った! 俺のコードがちゃんと役立った! Y田さん
    • clone/push/pull • clone/push/pullの考えみたいなもの? • 親とか子とか関係ないので,clone元からpull して更新することもできます • push/pullというのは力関係がないことを意味 するわけです
    • わかった?      ____    /      \ ( ;;;;(   /  _ノ  ヽ__\) ;;;;) /    (─)  (─ /;;/ |       (__人__) l;;,´ 分散ってのはわかったお・・・・・・・・ /      ∩ ノ)━・'/ 色々な人とやるには便利っぽいお・・・・・・ (  \ / _ノ´.|  |  ウチの開発環境に関係ないお・・・・・・? .\  "  /__|  |   \ /___ /
    •    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__) pull requestと呼ばれるgithubの仕組みを思い浮かべるといい.   |     ` ⌒´ノ  .  |         } マージする場所をbranchを作った人が指定するような感じだ .  ヽ        }  職人的にマージする必要性がなくなるので捗る    ヽ     ノ        \     /    く  \        \    |     \   \         \     |    |ヽ、二⌒)、          \
    • branchを理解する
    • branch master
    • branchを切る master debug-feat1
    • branchを切り替える master debug-feat1
    • branchを切り替える master debug-feat1 つまりbranchとはポインタのようなものです branchの有無とは無関係にコミットは存在します
    • コミットする master debug-feat1
    • さらにコミットする master debug-feat1
    • さらにコミットする master バグも取れたし,テストも終わ ったわー debug-feat1
    • master側も作業 master debug-feat1
    • branchを切り替えて・・・ master debug-feat1
    • master側コミットされたようです master debug-feat1
    • マージ開始 バグFixして欲しい debug-feat1 master
    • gitがチェック debug-feat1 master git チェック!
    • gitがチェック debug-feat1 master git コンフリクト とかなさげ,Go
    • マーーーーーーーーージ!! master debug-feat1
    • よし,よし バグ取れたわ master debug-feat1
    • あれ? あのー,俺は? master debug-feat1
    • ・・・・ あ,用済みだわ master debug-feat1
    • branch削除 master あああああああ!
    • branchの考え方 branchとはこんなイメージです svnと違ってデータがすべてコピーされません あくまでポインタであることをお忘れなく 実体はコミットグラフとして常に存在しています master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master 現在のbranchを調べる master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master Mac-mini:test sonson$ git branch develop 新しくbranchを作成 develop master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' 新しく作ったbranchに切り替える develop master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master branchを調べるとちゃんとふたつある develop master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c branch “develop”でファイルを追加する develop master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ ls feature1.c main.c ちゃんとファイルはふたつあるよね develop master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ ls feature1.c main.c Mac-mini:test sonson$ git checkout master Switched to branch 'master' ここでbranch “master”に戻すとどうなる? develop master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ ls feature1.c main.c Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c あ,ファイルが消えてる!!!!!!!!! develop master
    • 実際にやってみよう Mac-mini:test sonson$ git branch * master Mac-mini:test sonson$ git branch develop Mac-mini:test sonson$ git checkout develop Switched to branch 'develop' Mac-mini:test sonson$ git branch * develop master Mac-mini:test sonson$ touch feature1.c Mac-mini:test sonson$ git add feature1.c Mac-mini:test sonson$ git commit -m "Added new feature." [develop 5b5cc9c] Added new feature. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ ls feature1.c main.c Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c あ,ファイルが消えてる!!!!!!!!! gitのリポジトリを作ったディレクトリはgitに管理されるイメージ. すべてのデータは.git内にあり,そこからデータを引き出して, そのディレクトリ内で作業する感じになる
    • マージしてみる Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c develop master
    • あれ? Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master
    • あれ? Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master これをfast forwardマージといいます. ファイル等の変更にコンフリクト等がない場合は, そのままbranchを飛ばすだけでマージが成立するのです.
    • マージしてみる2 Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c develop master
    • おー Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master
    • おー Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master これをno fast forwardマージといいます. 常に新しいコミットを作ってマージします.
    • おー Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master 手元でマージするときは必ず,--no-ffで行うべきです. どこでマージが行われたのかわからないからです. さっきの例は--no-ffだったのね (というか絶対コミットができる)
    • おー Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master ただし,pullするときには--ffでやる方がいいでしょう. ローカルに対してもコミットが発生してしまうので, コミットグラフがぐちゃぐちゃになってしまいます
    • おー Mac-mini:test sonson$ git checkout master Switched to branch 'master' Mac-mini:test sonson$ ls main.c Mac-mini:test sonson$ git merge develop -m "Merge new feature1." --no-ff Merge made by the 'recursive' strategy. 0 files changed create mode 100644 feature1.c Mac-mini:test sonson$ developをmasterにマージ develop master とは言っても,グラフがめちゃくちゃになっても コードはちゃんと保たれるのであまり心配することもありません. 最初は恐れずガンガンやって,後悔することにしましょう.
    • branch • gitのbranchは軽い • んでbranchのようで(svnの)branchではない • svnのようにコピーではありません • いくら作ってもリポジトリは大きくなりません • すぐに気軽に作って潰せます
    • わかった?      ____    /      \ ( ;;;;(   /  _ノ  ヽ__\) ;;;;) /    (─)  (─ /;;/ |       (__人__) l;;,´ ますますわからなくなったお・・・・・・・・ /      ∩ ノ)━・'/ これが何の役に立つんだお・・・・・・? (  \ / _ノ´.|  |   .\  "  /__|  |   \ /___ /
    •    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__)  このbranchとpush/pullを組み合わせると   |     ` ⌒´ノ  分散型の開発開発すごく捗るんだが・・・・ .  |         }   .  ヽ        }   仕方がない具体的な例で説明するか    ヽ     ノ        \    /    く  \        \    |     \   \         \     |    |ヽ、二⌒)、          \
    • gitを実践で考える
    • 実践
    • 例)アプリを展示会に出す master feature1 develop ついにver1が完成!明日から3日間展示会です!
    • cloneします master feature1 develop master feature1 develop
    • cloneします master feature1 develop master feature1 develop 展示会組 居残り組
    • 展示会の準備中 master feature1
    • 動かしたら・・・ master feature1 ちょwwwww おまwwwwwww S木さんの コードバグってる!!!
    • 動かしたら・・・ master feature1 どーすんのよー この場で直すかー
    • 動かしたら・・・ master どーすんのよー この場で直すかー branch切るよー feature1
    • デバッグ! master feature1 demo-fix
    • デバッグ! master demo-fix まだ何かヘンだなー feature1
    • 展示会も終わり・・・ master demo-fix feature1
    • さて,帰ってきたのでPush! master demo-fix feature1
    • さて,帰ってきたのでPush! master demo-fix feature1
    • おお,統合された master demo-fix develop feature1
    • マージして整理しようか master demo-fix develop feature1
    • 展示会でのfixどうする? master demo-fix develop feature1
    • よさげなのでマーーーージ master develop feature1 demo-fix
    • こっちもください master develop feature1
    • こっちもください master develop feature1
    • ちゃんちゃん master develop feature1
    • 祭りの後      ____    /      \ ( ;;;;(   /  _ノ  ヽ__\) ;;;;) /    (─)  (─ /;;/ |       (__人__) l;;,´ なんとなくわかったような・・・・・・・・ /      ∩ ノ)━・'/ なんだかわからないような・・・・・だお (  \ / _ノ´.|  |   .\  "  /__|  |   \ /___ /
    •    / ̄ ̄\  /   _ノ  \  |    ( ●)(●) . |     (__人__) しょせん概念は概念.   |     ` ⌒´ノ  実際にやらないとわからないだろJK .  |         } .  ヽ        }   この使い方を年頭にいれて使ってみるのが定石だ    ヽ     ノ        \    /    く  \        \    |     \   \         \     |    |ヽ、二⌒)、          \
    •      ____      /⌒  ⌒\ ホジホジ    /( ●)  (●)\   /::::::⌒(__人__)⌒::::: \  とりあえずやってみるお   |    mj |ー'´      |   \  〈__ノ       /     ノ  ノ
    •       ._        \ヽ, ,、         `''|/ノ          .|      _   |      \`ヽ、|       \, V          `L,,_          |ヽ、)  ,、         /    ヽYノ        /    r''ヽ、.|       |     `ー-ヽ|ヮ       |       `|       |.        |       ヽ、      |         ヽ____ノ         /_ノ ' ヽ_\       /(≡)   (≡)\      /::::::⌒(__人__)⌒::::: \      |     |r┬-|     |      \      `ー'´     /      /          \      (  |          |  )      \|    э    |/        (    ,,,,    ,ノ        \  、(U)ノ ノ          \/  /            ┼ヽ  -|r‐、. レ |          /  /\            d⌒) ./| _ノ  __ノ       ⊂⌒__)__)
    • Thank you. @sonson_twit http://sonson.jp
    • backup slide backup