git boot camp for designer

Post on 13-Apr-2017

683 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Takashi Takebayashi

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

Takashi Takebayashi

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

多分 きっと

Maybe

超簡単にGitの説明

コマンドの内容

実践

本日のお題

超簡単にGitの説明

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

以上

コマンドの内容

一番最初に行うコマンド

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

クローン(clone)

クローン(clone)

remote

local

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

クローン(clone)

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

remote

local

分岐を作成するコマンド

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

ブランチ(branch)

ブランチ(branch)

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

remote

local

develop

ブランチ(branch)

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

remote

local

develop feature/xxx

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

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

チェックアウト(checkout)

チェックアウト(checkout)

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

remote

local

develop

チェックアウト(checkout)

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

remote

local

develop feature/xxx

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

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

アッド(add)

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

封筒の封をする

コミット(commit)

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

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

remote

local

develop feature/xxx

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

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

remote

local

develop feature/xxx

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

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

remote

local

develop feature/xxx

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

ポストに投函する

プッシュ(push)

プッシュ(push)

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

remote

local

develop feature/xxx

プッシュ(push)

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

remote

local

develop feature/xxx

develop feature/xxx

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

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

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

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

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

remote

local

develop feature/xxx

develop feature/xxx

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

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

remote develop

feature/xxx

内容が異なっている

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

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

remote

develop feature/xxx

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

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

remote develop

feature/xxx

同じ内容になる

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

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

事前にいただいた質問

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

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

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

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

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

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

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

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

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

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

コンフリクトへの対応

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

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

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

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

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

リベース(rebase)

リベース(rebase)

feature/xxx A->A’ B

A Bdevelop

裏側の世界

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

リベース(rebase)

feature/xxx A->A’ B

A Bdevelop

裏側の世界

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

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

developに反映

リベース(rebase)

feature/xxx A->A’ B

A Bdevelop

裏側の世界

A B->C

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

A’ C

リベース(rebase)

A Bdevelop

裏側の世界

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

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

feature/xxx A->A’ C

リベース(rebase)

A B

裏側の世界

A B->C

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

feature/xxx A->A’ C

develop

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

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

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

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

feature/ xxx_xyz

css: A->A’ js: α

develop

裏側の世界

css: A’ js: α->α’

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

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

css: A js: α

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

feature/ xxx_xyz

css: A->A’ js: α

css: A js: α

develop

裏側の世界

css: A’ js: α->α’

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

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

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

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

feature/ xxx_xyz

css: A->A’ js: α

css: A js: α

develop

裏側の世界

css: A’ js: α->α’

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

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

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

チェリーピック(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: α

実践

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Thank you for your attention

top related