git boot camp for designer

54
Takashi Takebayashi 超簡単Git理解できる Git Boot Camp for Designer

Upload: takashi-takebayashi

Post on 13-Apr-2017

683 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Git Boot Camp for Designer

Takashi Takebayashi

超簡単にGitが理解できる ~Git Boot Camp for Designer~

Page 2: Git Boot Camp for Designer

Takashi Takebayashi

超簡単にGitが理解できる ~Git Boot Camp for Designer~

多分 きっと

Maybe

Page 3: Git Boot Camp for Designer

超簡単にGitの説明

コマンドの内容

実践

本日のお題

Page 4: Git Boot Camp for Designer

超簡単にGitの説明

Page 5: Git Boot Camp for Designer

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

Page 6: Git Boot Camp for Designer

以上

Page 7: Git Boot Camp for Designer

コマンドの内容

Page 8: Git Boot Camp for Designer

一番最初に行うコマンド

remoteに存在する郵便局をもらう

クローン(clone)

Page 9: Git Boot Camp for Designer

クローン(clone)

remote

local

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

Page 10: Git Boot Camp for Designer

クローン(clone)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

Page 11: Git Boot Camp for Designer

分岐を作成するコマンド

クローン(clone)するとmaster/developという机なので、master/developという机の作業状況を元に別の机を作成する

ブランチ(branch)

Page 12: Git Boot Camp for Designer

ブランチ(branch)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop

Page 13: Git Boot Camp for Designer

ブランチ(branch)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop feature/xxx

Page 14: Git Boot Camp for Designer

作業する場所を変更するコマンド

今いる机から既にある別の机に移動する

チェックアウト(checkout)

Page 15: Git Boot Camp for Designer

チェックアウト(checkout)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop

Page 16: Git Boot Camp for Designer

チェックアウト(checkout)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop feature/xxx

Page 17: Git Boot Camp for Designer

コミット(commit)前に行うコマンド

作業した手紙を封筒に入れる

アッド(add)

Page 18: Git Boot Camp for Designer

作業したものを保存するコマンド

封筒の封をする

コミット(commit)

Page 19: Git Boot Camp for Designer

アッド(add), コミット(commit)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop feature/xxx

Page 20: Git Boot Camp for Designer

アッド(add), コミット(commit)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop feature/xxx

Page 21: Git Boot Camp for Designer

アッド(add), コミット(commit)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop feature/xxx

Page 22: Git Boot Camp for Designer

localをremoteに反映するコマンド

ポストに投函する

プッシュ(push)

Page 23: Git Boot Camp for Designer

プッシュ(push)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop feature/xxx

Page 24: Git Boot Camp for Designer

プッシュ(push)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop feature/xxx

develop feature/xxx

Page 25: Git Boot Camp for Designer

正確にはGitのコマンドではない

別の机の作業を一緒にする

マージリクエスト(merge request)

Page 26: Git Boot Camp for Designer

マージリクエスト(merge request)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

local

develop feature/xxx

develop feature/xxx

Page 27: Git Boot Camp for Designer

マージリクエスト(merge request)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote develop

feature/xxx

内容が異なっている

Page 28: Git Boot Camp for Designer

マージリクエスト(merge request)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote

develop feature/xxx

Page 29: Git Boot Camp for Designer

マージリクエスト(merge request)

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

remote develop

feature/xxx

同じ内容になる

Page 30: Git Boot Camp for Designer

どうしてコンフリクトするの?

リベースとチェリーピックの違いは?

事前にいただいた質問

Page 31: Git Boot Camp for Designer

コンフリクトが起こる理由

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

feature/xxx

Adevelop

表側の世界

feature/yyy

裏側の世界

B

C

AAA BBB

AAA BBB

BBB BBB

AAA BBB

AAA CCC

Page 32: Git Boot Camp for Designer

コンフリクトが起こる理由

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

feature/xxxB

C

Adevelop

表側の世界

feature/yyy

裏側の世界merge

AAA BBB

AAA BBB

BBB BBB

AAA BBB

AAA CCC

Page 33: Git Boot Camp for Designer

コンフリクトが起こる理由

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

表側の世界 裏側の世界

feature/xxxB

C

Adevelop

feature/yyy

BBBB BBB

AAA BBB

BBB BBB

AAA BBB

AAA CCC

Page 34: Git Boot Camp for Designer

コンフリクトが起こる理由

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

feature/xxxB

C

Adevelop

表側の世界

feature/yyy

裏側の世界merge

B

AAA BBB

BBB BBB

AAA BBB

AAA CCC

BBB BBB

Page 35: Git Boot Camp for Designer

コンフリクトが起こる理由

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

feature/xxxB

C

Adevelop

表側の世界

feature/yyy

裏側の世界

B

❌Bの状態のファイルに

AからCに変更したファイルは うまく取り込めない =コンフリクト

AAA BBB

AAA CCC

BBB BBB

AAA BBB

BBB BBB

Page 36: Git Boot Camp for Designer

コンフリクトへの対応

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

feature/xxxB

C

Adevelop

表側の世界 裏側の世界

B

C’

Bの状態の上に

Cの変更を加えたC’を

プル/リベースで作成する

feature/yyy

AAA BBB

BBB BBB

AAA CCC

BBB BBB

BBB BBB

AAA BBB

Page 37: Git Boot Camp for Designer

コンフリクトが起こる理由

AdventCalendar - デザイナーがこうやってGit覚えて大好きになったよ♡ - Qiita http://qiita.com/yunico-jp/items/87bdd13971e82833f6bb

feature/xxxB

C

Adevelop

表側の世界 裏側の世界

B

C’

これで コンフリクト せずに

マージできる

C’

feature/yyy

AAA BBB

BBB BBB

AAA CCC

AAA CCC

BBB BBB

AAA BBB

Page 38: Git Boot Camp for Designer

履歴の直線性を維持するのが目的

ローカルにリモートの変更を統合する方法でもある

リベース(rebase)

Page 39: Git Boot Camp for Designer

リベース(rebase)

feature/xxx A->A’ B

A Bdevelop

裏側の世界

xxxというチケットの対応で 変更を加えてたものの

Page 40: Git Boot Camp for Designer

リベース(rebase)

feature/xxx A->A’ B

A Bdevelop

裏側の世界

A B->C その間に別の人が

xyzというチケットの変更を

developに反映

Page 41: Git Boot Camp for Designer

リベース(rebase)

feature/xxx A->A’ B

A Bdevelop

裏側の世界

A B->C

マージリクエスト(merge request)をすると コミットが増える

A’ C

Page 42: Git Boot Camp for Designer

リベース(rebase)

A Bdevelop

裏側の世界

A B->C リベース(rebase)なら

コミットが増えず 分岐位置だけが変わる

feature/xxx A->A’ C

Page 43: Git Boot Camp for Designer

リベース(rebase)

A B

裏側の世界

A B->C

マージリクエスト(merge request)をすると 同様に参照位置だけが変わる

feature/xxx A->A’ C

develop

Page 44: Git Boot Camp for Designer

必要な変更だけ取り込むコマンド

資料の山の中から必要な資料だけ取る

チェリーピック(cherry-pick)

Page 45: Git Boot Camp for Designer

チェリーピック(cherry-pick)

feature/ xxx_xyz

css: A->A’ js: α

develop

裏側の世界

css: A’ js: α->α’

css: A’ js: α’->α’’

2つのチケットの変更を反映

css: A js: α

Page 46: Git Boot Camp for Designer

チェリーピック(cherry-pick)

feature/ xxx_xyz

css: A->A’ js: α

css: A js: α

develop

裏側の世界

css: A’ js: α->α’

css: A’ js: α’->α’’

テストをしたらjsに問題が!!

cssの変更だけでも今日中に リリースしないといけないのに!!

Page 47: Git Boot Camp for Designer

チェリーピック(cherry-pick)

feature/ xxx_xyz

css: A->A’ js: α

css: A js: α

develop

裏側の世界

css: A’ js: α->α’

css: A’ js: α’->α’’

hotfix/zzzcss: A->A’ js: α

バグのない部分だけ 別のブランチから取得

Page 48: Git Boot Camp for Designer

チェリーピック(cherry-pick)

feature/ xxx_xyz

css: A->A’ js: α

css: A js: α

develop

裏側の世界

css: A’ js: α->α’

css: A’ js: α’->α’’

hotfix/zzzcss: A->A’ js: α

そこからマージリクエスト(merge request)で マージする

css: A’ js: α

Page 49: Git Boot Camp for Designer

実践

Page 50: Git Boot Camp for Designer

2人(全体が奇数の場合は1つだけ3人)でチームを組んでください

[課題リポジトリ:style guide]をcloneしてください [https://xyz.git]

チェリーピック(cherry-pick)

Page 51: Git Boot Camp for Designer

( *՞ਊ՞*)ノ「いやーstyle guide かなりいいらしいね」 「はい」٩( 'ω' )و

( *՞ਊ՞*)ノ「ステキなんだけど、もうちょっとよくしたいなぁ」 「はい(なんだろう…)」٩( 'ω' )و

( *՞ਊ՞*)ノ「デザインを変えたいんだ、デザイナーだけで」 「えっ!?」٩( 'ω' )و

( *՞ਊ՞*)ノ「デザインをデザイナーだけで変えて欲しいんだ」 「えっ!?」٩( 'ω' )و

お題:変更を反映しなきゃ(使命感

Page 52: Git Boot Camp for Designer

( *՞ਊ՞*)ノ「いやー、こないだのデザイン変更よかったよ」 「はい」٩( 'ω' )و

( *՞ਊ՞*)ノ「だけど、“霧島、まーじりくえすとでしてないってよ”」 「はっ?」٩( 'ω' )و

( *՞ਊ՞*)ノ「つまり、“まーじりくえすと”で変更してくれない?」 「えっ!?」٩( 'ω' )و

( *՞ਊ՞*)ノ「デザイナーだけで“まーじりくえすと”で変更を反映して欲しいんだ」

「えっ!?」٩( 'ω' )و

お題:マージリクエストしな(ry

Page 53: Git Boot Camp for Designer

( *՞ਊ՞*)ノ「いやー、こないだの“まーじりくえすと”すごく評判いいよ」 「はい」٩( 'ω' )و

( *՞ਊ՞*)ノ「だけど、エンジニアに手伝ってもらったって?」 「コンフリクトの部分ですね?あれは仕方がないので」٩( 'ω' )و

( *՞ਊ՞*)ノ「“ダメよ~ダメダメ”」 「はっ?」٩( 'ω' )و

( *՞ਊ՞*)ノ「デザイナーだけで“こんふりくと”も解消できなきゃ」 「えっ!?」٩( 'ω' )و

お題:コンフリクト解消(ry

Page 54: Git Boot Camp for Designer

Thank you for your attention