Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Yahoo JAPAN MEET UP
~Gitを使ったチーム開発体験@名古屋~
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
第1部
Gitの概要/準備
2
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
こういう経験していませんか?
3
よーし、先週開発してたアプリの続きをやる
ぞ〜
・・・
あれ?このコードってなんで追加したんだっ
け?
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
こういう経験していませんか?
4
ありがとう!じゃこのファイルをコピペして・・・
わ!自分が作ってた部分が上書きされちゃった!
ここの機能の開発、出来たよ!
ソースコードをメールに添付して送るから取り込んでね。
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
こういう経験していませんか?
5
ありがとう!じゃこのファイルをコピペして・・・
わ!自分が作ってた部分が上書きされちゃった!
ここの機能の開発、出来たよ!
ソースコードをメールに添付して送るから取り込んでね。
GitとGitHubを使って
解決しましょう!
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
今日のワークショップのゴール
6
チーム開発のための
Git/GitHubの基礎を学ぶ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
バージョン管理って?
7
ファイルの変更を記録しておくシステム
「誰が」「どのファイルを」「どう変更したか」
がわかる
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
バージョン管理って?
8
ファイルの変更を記録する場所
↓
リポジトリ
iPhoneアプリ
リポジトリ
APIサーバ
リポジトリ
○○ライブラリ
リポジトリ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
バージョン管理って?
9
2017/09/24 12:15
佐藤さんが
背景画像を変更
2017/09/24 14:15
田中さんが
タイトルを変更
2017/09/25 08:15
山田さんが
本文を変更
過去の状態 最新の状態
リポジトリ内でのバージョン管理
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
バージョン管理の嬉しいところ
10
2017/09/24 12:15
佐藤さんが
背景画像を変更
2017/09/24 14:15
田中さんが
タイトルを変更
2017/09/25 08:15
山田さんが
本文を変更
差分
過去の状態との差分がわかる
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
バージョン管理の嬉しいところ
11
2017/09/24 12:15
佐藤さんが
背景画像を変更
2017/09/24 14:15
田中さんが
タイトルを変更
2017/09/25 08:15
山田さんが
本文を変更
過去の状態を最新として扱う
過去の状態に戻せる
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
バージョン管理とGit
12
バージョン管理の方式はいくつかある
今回はGitを使います
Subversion Git Mercurial
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
GitとGitHub
13
Git バージョン管理のシステム
GitHub Gitでのバージョン管理をしやすくするWeb
サービス
ブラウザで変更履歴を見たりコードを
共有したりするのが簡単に出来る
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Gitを使うには
14
コマンドラインツールでgitコマンドを使う
or
GUIツールを使う
↓
今回はSourceTreeというGUIツールを使います
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Sourcetreeのダウンロード
https://ja.atlassian.com/software/sourcetr
ee
にアクセスして、ダウンロード
15
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
SourceTreeのインストール
• Windows
• exeファイルを実行
• mac OS
• zipファイルを展開して出来た
SourceTree.appをアプリケーション以下に
移動
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
SourceTreeのインストール
17
ライセンスに同意にチェック
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
SourceTreeのインストール
18
「既存のアカウント」
・Googleアカウント
・Atlassianアカウント
のどちらかでログイン
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
SourceTreeのインストール
19
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
SourceTreeのインストール
20
Mac:「セットアップをスキップ」
Windows:「スキップ」
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
もしこの画面が出たら
21
Gitが見つかりませんでした Mercurialが見つかりませんでした
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
GitHubの設定
GitHub用に下記の作業を進めます
• アカウント作成
• リポジトリの作成
22
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
GitHubの設定(アカウント作成)
https://github.com
にアクセス
23
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
GitHubの設定(アカウントの作成)
24
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.25
リポジトリを作りましょう
https://github.com/new
にアクセス
自分のアカウント以下に
リポジトリを作成
• nagoya-meetup2018
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
SourceTreeとGitHubを連携(Win)
26
アカウントを追加をクリック
GitHub、HTTPSを選択
Basic認証
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.27
SourceTreeとGitHubを連携(mac)
メニューバー「Sourcetree」
→環境設定→アカウント
GitHubを選択し
「接続アカウント」をクリック
→ログイン画面からログイン
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.28
SourceTreeとGitHubを連携
リモートリポジトリを選択し
先ほど作成した
nagoya-meetup2018
が存在すれば連携完了!
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
休憩
29
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
第2部
Gitハンズオン
30
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
この部でやりたいこと
• GitHub→自分のPCに持ってくる
• ファイルを追加・修正する
• GitHubに反映する
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
この部でやりたいこと
• GitHub→自分のPCに持ってくる
• ファイルを追加・修正する
• GitHubに反映する
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
GitHub→自分のPCに持ってくる
リモートリポジトリ :
色んな人が共有出来るようにしたリポジトリ。
GitHub上に置かれたリポジトリはリモートリポジトリ。
ローカルリポジトリ :
自分のPC上にだけ存在するリポジトリ。
33
ローカルリポジトリ リモートリポジトリ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
GitHub→自分のPCに持ってくる
clone :
リモートリポジトリをローカルリポジトリにコピーする
※初回のみの操作
34
ローカルリポジトリ リモートリポジトリ
clone
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
この部でやりたいこと
• GitHub→自分のPCに持ってくる
• ファイルを追加・修正する
• GitHubに反映する
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ファイルを修正してGitで扱う
ファイルの変更をローカルリポジトリに
登録するには2つのステップが必要です
36
ローカルリポジトリ
ファイルを変更したよ!
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ファイルを修正してGitで扱う
どのファイルの変更を登録するかを選択して、
ステージング領域に追加する
→ add という
37
ローカルリポジトリ
ステージング領域
(インデックスともいう)
add
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ファイルを修正してGitで扱う
addしたステージング領域の変更を
ローカルリポジトリに登録する
→ commit という
38
ローカルリポジトリ
ステージング領域
(インデックスともいう)
commit
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ファイルを修正してGitで扱う
commit時にはどういう変更をしたかを
コメントで残す必要があります
39
ローカルリポジトリ
ステージング領域
(インデックスともいう)
commit
commitコメント
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ファイルを修正してGitで扱う
大事なこと
• ファイルの変更はaddしてcommit
• commitしたときはコメントを残す
40
ローカルリポジトリ
ステージング領域
commit
commitコメント
add
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
この部でやりたいこと
• GitHub→自分のPCに持ってくる
• ファイルを追加・修正する
• GitHubに反映する
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
自分のPC→GitHubに反映する
push:
ローカルリポジトリの変更をリモートリポジトリに反映する
42
ローカルリポジトリ リモートリポジトリ
push
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
第2部の課題ワーク
SourceTreeを使って
一連の流れをやってみましょう!
43
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
GitHub→自分のPCに持ってくる
clone :
リモートリポジトリをローカルリポジトリにコピーする
※初回のみの操作
44
ローカルリポジトリ リモートリポジトリ
clone
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
cloneをSourceTreeでやってみよう
45
GitHub上のリポジトリのページで、赤で囲んだボタンをクリック
→リポジトリのURLがコピーされます
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
cloneをSourceTreeでやってみよう
46
1. 新規→「URLからクローン」を選択
2. ソースURLに先ほどコピーしたURLをペースト
3. 「クローン」をクリック
4. 「保存先のパス」がローカルリポジトリになります
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
cloneをSourceTreeでやってみよう
47
上記の設定をおまけでやっておきましょう
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ローカルリポジトリを確認しよう
エクスプローラ/Finderで
先ほどのパスを開いてみましょう
この開いたフォルダ
=ローカルリポジトリ
48
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ファイルを追加しましょう
テキストファイルをメモ帳やテキストエディタで作成します
• ファイル名は「README.txt」
• 本文には「Hello Nagoya!」
• 保存場所はローカルリポジトリ
49
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ファイルを修正してGitで扱う
どのファイルの変更を登録するかを選択して、
ステージング領域に追加する
→ add という
50
ローカルリポジトリ
ステージング領域
(インデックスともいう)
add
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ステージングにaddしよう
51
README.txtが出来ている
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ステージングにaddしよう
52
• チェックボックスをチェック
• ファイルを上にドラッグ&ドロップ
のどちらかでステージングへadd
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ステージングにaddしよう
53
ファイルがステージングにaddされた
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ステージングにaddしよう
54
ファイルの差分が表示されている
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ファイルを修正してGitで扱う
addしたステージング領域の変更を
ローカルリポジトリに登録する
→ commit という
55
ローカルリポジトリ
ステージング領域
(インデックスともいう)
commit
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ローカルリポジトリにcommitしよう
56
「コミット」をクリック
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ローカルリポジトリにcommitしよう
57
commitコメントを入力してコミット
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ローカルリポジトリにcommitしよう
58
ステージングからローカルリポジトリに
commitされたのでなくなった
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
自分のPC→GitHubに反映する
push:
ローカルリポジトリの変更をリモートリポジトリに反映する
59
ローカルリポジトリ リモートリポジトリ
push
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
リモートリポジトリにpushしよう
60
「プッシュ」をクリック
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
リモートリポジトリにpushしよう
61
masterをチェックしてOK
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
GitHubに反映されていることを確認
62
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
作業ワークのやることリスト
• リモートリポジトリからローカルリポジトリにclone
• README.txtを作成してローカルリポジトリに保存
• SourceTreeでadd→commit→push
• GitHub上で反映されているか確認
わからないところがあったらサポーターに!
63
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
第2部のまとめ
• リポジトリは2種類ある
• リモートリポジトリ
• ローカルリポジトリ
• ファイルの変更を登録するには
• addしてコメントを書いてcommit
• リモート→ローカルにコピーするにはclone
• リモートリポジトリに反映するにはpush
64
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
休憩
65
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
第3部
チーム開発演習
66
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
この部でやりたいこと
1つのリモートリポジトリに対して2人がそれ
ぞれ作業出来る
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
第2部でやったこと
push:
ローカルリポジトリの変更をリモートリポジトリに反映する
68
ローカルリポジトリ リモートリポジトリ
push
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
pushを2人同時にやると…?
69
機能Aを
push
機能Bを
push
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
pushを2人同時にやると…?
70
機能Aと機能Bが
混ざってしまう
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
pushを2人同時にやると…?
71
機能Aと機能Bが
混ざってしまう
混ざるのを避けるため
作業環境を分ける
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
pushを2人同時にやると…?
72
機能Aと機能Bが
混ざってしまう
混ざるのを避けるため
ブランチを分ける
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ブランチについて
73
最新の状態
大元のブランチ
→masterブランチ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ブランチについて
74
Aさんの作業ブランチ
Bさんの作業ブランチ
最新の状態からブランチを分ける
→チェックアウト という
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ブランチについて
75
それぞれの変更をコミット
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ブランチについて
76
masterブランチに反映
→マージ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
マージをするには?
Pull Requestを作成する
• GitHubの機能
• マージしてOKかコードレビューをする
77
Pull Request作成 コードレビュー
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ブランチの作成方法
78
「ブランチ」をクリック
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ブランチの作成方法
79
ブランチ名はGitHubアカウントとします
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ブランチの作成方法
左メニューの「ブランチ」に項目が増えています
○が付いているのが現在のブランチ
ブランチ名をダブルクリックすると切り替えられます
80
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pull Requestの作成方法
• ファイルを修正してadd→commit
• 作成したブランチをリモートリポジトリにpush
• masterブランチにpushしないように注意!
• すると、GitHub上の画面がこのようになります
81
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pull Requestの作成方法
Compare & pull requestをクリック
82
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pull Requestの作成方法
83
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pull Requestの作成方法
84
Pull Requestの概要文
→どのような変更をしたかの説明を記載します。
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pull Requestの作成方法
85
Create pull requestをクリック
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pull Requestの作成方法
86
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pull Requestでのコードレビュー
87
Files changedで差分が見られる
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Pull Requestでのコードレビュー
88
Merge pull requestをクリックしてマージ
レビュワーは問題なければコメントを残す
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
マージ分をローカルに反映する
Pull Requestがマージされると
• リモートリポジトリのmasterブランチに反映される
• ローカルリポジトリのmasterブランチにはまだ未反映
89
作業ブランチ master master
マージ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
マージ分をローカルに反映する
ローカルリポジトリのmasterブランチに反映させる
→ pull という
90
作業ブランチ master master
マージ pull
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
マージ分をローカルに反映する
91
masterブランチに切り替え
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
マージ分をローカルに反映する
92
「プル」をクリック
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
マージ分をローカルに反映する
93
ブランチを作成して
マージしている
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
第3部の課題ワーク
ここからはペアで作業します
机の上にあるペア番号を確認してください
94
スクリーン
Aさん Bさん
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
前準備(演習用ソースコードのコピー)
https://github.com/kosshima/git-
meetup180217
Aさんが上記のGitHubにアクセスして
「Fork」してください
※Fork:
他の人のGitHub上のリポジトリを自分のリポジトリにコ
ピーする
95
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Forkの方法
96
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
前準備(Collaboratorsに登録)
97
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
前準備(Collaboratorsに登録)
98
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
前準備(Collaboratorsに登録)
99
BさんのGitHubアカウントを入力して
Add collaboratorをクリック
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
確認
サポーターが確認します
100
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その1
準備は完了です!
AさんのGitHubにある
「git-meetup180217」を
AさんもBさんもcloneしてください
101
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その1
ブランチを作成し、sample.htmlの
↑部分をそれぞれ書き換えてください
102
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その1
AさんもBさんも同時に作業してください
• アカウント名でブランチを作成
• sample.htmlに自分のアカウント名を追記
• add→commit→push
• Pull Requestを作成
ここまで出来たらサポーターがチェックします
103
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その1
BさんはAさんのPull Requestをレビューします
• 問題なければその旨をコメント
• マージする
• Bさんのローカルリポジトリにpullして反映
• ブランチをmasterに切り替えてから
104
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その1
AさんはBさんのPull Requestをレビューします
• 問題なければその旨をコメント
• マージする
• Aさんのローカルリポジトリにpullして反映
105
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その2
2人同時に同じ箇所を修正します
まずmasterブランチにcheckoutして
pullしてください
106
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その2
次に先ほどとは別の名前で
ブランチを作成し、sample.htmlの
↑部分をそれぞれ書き換えてください
最近食べた美味しかったものをそれぞれ書きます
107
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その2
2人同時に行います
• 先ほどとは別の名前でブランチを作成
• sample.htmlに好きな食べ物を追記
• add→commit→push
• Pull Requestを作成
ここまで出来たらサポーターがチェックします
108
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その2
AさんはBさんのPull Requestをレビューします
• 問題なければその旨をコメント
• マージする
• Aさんのローカルリポジトリにpullして反映
• ブランチをmasterに切り替えてから
109
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ペアで作業してみよう その2
BさんはAさんのPull Requestをレビューします
• 問題なければその旨をコメント
• マージする
• Bさんのローカルリポジトリにpullして反映
110
ここで一回STOP
コンフリクトが起こります
※コンフリクト:同じ箇所を修正し、修正が重複している状態
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
コンフリクト
111
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
コンフリクトの解消
112
後のコミット
先のコミット
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
コンフリクトの解消
113
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
コンフリクトの解消
114
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
マージが可能に
115
マージします
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
masterブランチの確認
116
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
第3部のまとめ
• 作業前にブランチを作成する
• 完了したらmasterブランチへPull Request
• コードレビューをしてマージする
• ローカルリポジトリにはpullで反映する
• 同時に同じ箇所を修正しあったら
コンフリクトが起こる
• コンフリクトが起きても修正は可能
117
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
おわりに
118
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ローカルリポジトリでの作業
• ファイルの変更はaddしてcommit
• commitしたときはコメントを残す
119
ローカルリポジトリ
ステージング領域
commit
commitコメント
add
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ローカルとリモートのやりとり
clone : リモートリポジトリをローカルリポジトリにコピー
pull : リモートリポジトリの変更をローカルリポジトリに反映
push : ローカルリポジトリの変更をリモートリポジトリに反映
120
ローカルリポジトリ リモートリポジトリ
push
pull
clone
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
ブランチについて
121
masterブランチ
Pull Request作業用ブランチ
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
まとめ
GitとGitHubにはこれ以外にも便利な機能があります。
が、コマンドや機能を覚えるのはあとからでも出来ます。
まずは基本的な仕組みをしっかりおさえて
今後の開発で使っていきましょう!
122
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
Appendix
123
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Gitコマンドでの操作
• add
$ git add ファイルパス
• commit
$ git commit –m "commitコメント"
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Gitコマンドでの操作
• ブランチの作成
$ git branch ブランチ名
• 今のブランチを確認
$ git branch
• ブランチの切り替え
$ git checkout ブランチ名
• ブランチの作成+そのブランチに切り替え
$ git checkout –b ブランチ名
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Gitコマンドでの操作
• clone
$ git clone リポジトリURL
• pull
$ git pull origin pullしたいブランチ名
• push
$ git push origin pushしたいブランチ名
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Gitコマンドでの操作
"origin"ってなに?
→リモートリポジトリのURLを指している。
毎回打つのが面倒なので"origin"という略称で代用出来るようにデ
フォルトでなっている。
下の2つは同じことを表している。
$ git pull origin master
$ git pull git@github.com:ユーザ名/リポジトリ名.git master
127

Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~

  • 1.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Yahoo JAPAN MEET UP ~Gitを使ったチーム開発体験@名古屋~
  • 2.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. 第1部 Gitの概要/準備 2
  • 3.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. こういう経験していませんか? 3 よーし、先週開発してたアプリの続きをやる ぞ〜 ・・・ あれ?このコードってなんで追加したんだっ け?
  • 4.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. こういう経験していませんか? 4 ありがとう!じゃこのファイルをコピペして・・・ わ!自分が作ってた部分が上書きされちゃった! ここの機能の開発、出来たよ! ソースコードをメールに添付して送るから取り込んでね。
  • 5.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. こういう経験していませんか? 5 ありがとう!じゃこのファイルをコピペして・・・ わ!自分が作ってた部分が上書きされちゃった! ここの機能の開発、出来たよ! ソースコードをメールに添付して送るから取り込んでね。 GitとGitHubを使って 解決しましょう!
  • 6.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 今日のワークショップのゴール 6 チーム開発のための Git/GitHubの基礎を学ぶ
  • 7.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. バージョン管理って? 7 ファイルの変更を記録しておくシステム 「誰が」「どのファイルを」「どう変更したか」 がわかる
  • 8.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. バージョン管理って? 8 ファイルの変更を記録する場所 ↓ リポジトリ iPhoneアプリ リポジトリ APIサーバ リポジトリ ○○ライブラリ リポジトリ
  • 9.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. バージョン管理って? 9 2017/09/24 12:15 佐藤さんが 背景画像を変更 2017/09/24 14:15 田中さんが タイトルを変更 2017/09/25 08:15 山田さんが 本文を変更 過去の状態 最新の状態 リポジトリ内でのバージョン管理
  • 10.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. バージョン管理の嬉しいところ 10 2017/09/24 12:15 佐藤さんが 背景画像を変更 2017/09/24 14:15 田中さんが タイトルを変更 2017/09/25 08:15 山田さんが 本文を変更 差分 過去の状態との差分がわかる
  • 11.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. バージョン管理の嬉しいところ 11 2017/09/24 12:15 佐藤さんが 背景画像を変更 2017/09/24 14:15 田中さんが タイトルを変更 2017/09/25 08:15 山田さんが 本文を変更 過去の状態を最新として扱う 過去の状態に戻せる
  • 12.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. バージョン管理とGit 12 バージョン管理の方式はいくつかある 今回はGitを使います Subversion Git Mercurial
  • 13.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. GitとGitHub 13 Git バージョン管理のシステム GitHub Gitでのバージョン管理をしやすくするWeb サービス ブラウザで変更履歴を見たりコードを 共有したりするのが簡単に出来る
  • 14.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Gitを使うには 14 コマンドラインツールでgitコマンドを使う or GUIツールを使う ↓ 今回はSourceTreeというGUIツールを使います
  • 15.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Sourcetreeのダウンロード https://ja.atlassian.com/software/sourcetr ee にアクセスして、ダウンロード 15
  • 16.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. SourceTreeのインストール • Windows • exeファイルを実行 • mac OS • zipファイルを展開して出来た SourceTree.appをアプリケーション以下に 移動
  • 17.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. SourceTreeのインストール 17 ライセンスに同意にチェック
  • 18.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. SourceTreeのインストール 18 「既存のアカウント」 ・Googleアカウント ・Atlassianアカウント のどちらかでログイン
  • 19.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. SourceTreeのインストール 19
  • 20.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. SourceTreeのインストール 20 Mac:「セットアップをスキップ」 Windows:「スキップ」
  • 21.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. もしこの画面が出たら 21 Gitが見つかりませんでした Mercurialが見つかりませんでした
  • 22.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. GitHubの設定 GitHub用に下記の作業を進めます • アカウント作成 • リポジトリの作成 22
  • 23.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. GitHubの設定(アカウント作成) https://github.com にアクセス 23
  • 24.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. GitHubの設定(アカウントの作成) 24
  • 25.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.25 リポジトリを作りましょう https://github.com/new にアクセス 自分のアカウント以下に リポジトリを作成 • nagoya-meetup2018
  • 26.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. SourceTreeとGitHubを連携(Win) 26 アカウントを追加をクリック GitHub、HTTPSを選択 Basic認証
  • 27.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.27 SourceTreeとGitHubを連携(mac) メニューバー「Sourcetree」 →環境設定→アカウント GitHubを選択し 「接続アカウント」をクリック →ログイン画面からログイン
  • 28.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.28 SourceTreeとGitHubを連携 リモートリポジトリを選択し 先ほど作成した nagoya-meetup2018 が存在すれば連携完了!
  • 29.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. 休憩 29
  • 30.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. 第2部 Gitハンズオン 30
  • 31.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. この部でやりたいこと • GitHub→自分のPCに持ってくる • ファイルを追加・修正する • GitHubに反映する
  • 32.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. この部でやりたいこと • GitHub→自分のPCに持ってくる • ファイルを追加・修正する • GitHubに反映する
  • 33.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. GitHub→自分のPCに持ってくる リモートリポジトリ : 色んな人が共有出来るようにしたリポジトリ。 GitHub上に置かれたリポジトリはリモートリポジトリ。 ローカルリポジトリ : 自分のPC上にだけ存在するリポジトリ。 33 ローカルリポジトリ リモートリポジトリ
  • 34.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. GitHub→自分のPCに持ってくる clone : リモートリポジトリをローカルリポジトリにコピーする ※初回のみの操作 34 ローカルリポジトリ リモートリポジトリ clone
  • 35.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. この部でやりたいこと • GitHub→自分のPCに持ってくる • ファイルを追加・修正する • GitHubに反映する
  • 36.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ファイルを修正してGitで扱う ファイルの変更をローカルリポジトリに 登録するには2つのステップが必要です 36 ローカルリポジトリ ファイルを変更したよ!
  • 37.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ファイルを修正してGitで扱う どのファイルの変更を登録するかを選択して、 ステージング領域に追加する → add という 37 ローカルリポジトリ ステージング領域 (インデックスともいう) add
  • 38.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ファイルを修正してGitで扱う addしたステージング領域の変更を ローカルリポジトリに登録する → commit という 38 ローカルリポジトリ ステージング領域 (インデックスともいう) commit
  • 39.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ファイルを修正してGitで扱う commit時にはどういう変更をしたかを コメントで残す必要があります 39 ローカルリポジトリ ステージング領域 (インデックスともいう) commit commitコメント
  • 40.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ファイルを修正してGitで扱う 大事なこと • ファイルの変更はaddしてcommit • commitしたときはコメントを残す 40 ローカルリポジトリ ステージング領域 commit commitコメント add
  • 41.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. この部でやりたいこと • GitHub→自分のPCに持ってくる • ファイルを追加・修正する • GitHubに反映する
  • 42.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 自分のPC→GitHubに反映する push: ローカルリポジトリの変更をリモートリポジトリに反映する 42 ローカルリポジトリ リモートリポジトリ push
  • 43.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 第2部の課題ワーク SourceTreeを使って 一連の流れをやってみましょう! 43
  • 44.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. GitHub→自分のPCに持ってくる clone : リモートリポジトリをローカルリポジトリにコピーする ※初回のみの操作 44 ローカルリポジトリ リモートリポジトリ clone
  • 45.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. cloneをSourceTreeでやってみよう 45 GitHub上のリポジトリのページで、赤で囲んだボタンをクリック →リポジトリのURLがコピーされます
  • 46.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. cloneをSourceTreeでやってみよう 46 1. 新規→「URLからクローン」を選択 2. ソースURLに先ほどコピーしたURLをペースト 3. 「クローン」をクリック 4. 「保存先のパス」がローカルリポジトリになります
  • 47.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. cloneをSourceTreeでやってみよう 47 上記の設定をおまけでやっておきましょう
  • 48.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ローカルリポジトリを確認しよう エクスプローラ/Finderで 先ほどのパスを開いてみましょう この開いたフォルダ =ローカルリポジトリ 48
  • 49.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ファイルを追加しましょう テキストファイルをメモ帳やテキストエディタで作成します • ファイル名は「README.txt」 • 本文には「Hello Nagoya!」 • 保存場所はローカルリポジトリ 49
  • 50.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ファイルを修正してGitで扱う どのファイルの変更を登録するかを選択して、 ステージング領域に追加する → add という 50 ローカルリポジトリ ステージング領域 (インデックスともいう) add
  • 51.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ステージングにaddしよう 51 README.txtが出来ている
  • 52.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ステージングにaddしよう 52 • チェックボックスをチェック • ファイルを上にドラッグ&ドロップ のどちらかでステージングへadd
  • 53.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ステージングにaddしよう 53 ファイルがステージングにaddされた
  • 54.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ステージングにaddしよう 54 ファイルの差分が表示されている
  • 55.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ファイルを修正してGitで扱う addしたステージング領域の変更を ローカルリポジトリに登録する → commit という 55 ローカルリポジトリ ステージング領域 (インデックスともいう) commit
  • 56.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ローカルリポジトリにcommitしよう 56 「コミット」をクリック
  • 57.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ローカルリポジトリにcommitしよう 57 commitコメントを入力してコミット
  • 58.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ローカルリポジトリにcommitしよう 58 ステージングからローカルリポジトリに commitされたのでなくなった
  • 59.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 自分のPC→GitHubに反映する push: ローカルリポジトリの変更をリモートリポジトリに反映する 59 ローカルリポジトリ リモートリポジトリ push
  • 60.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. リモートリポジトリにpushしよう 60 「プッシュ」をクリック
  • 61.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. リモートリポジトリにpushしよう 61 masterをチェックしてOK
  • 62.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. GitHubに反映されていることを確認 62
  • 63.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 作業ワークのやることリスト • リモートリポジトリからローカルリポジトリにclone • README.txtを作成してローカルリポジトリに保存 • SourceTreeでadd→commit→push • GitHub上で反映されているか確認 わからないところがあったらサポーターに! 63
  • 64.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 第2部のまとめ • リポジトリは2種類ある • リモートリポジトリ • ローカルリポジトリ • ファイルの変更を登録するには • addしてコメントを書いてcommit • リモート→ローカルにコピーするにはclone • リモートリポジトリに反映するにはpush 64
  • 65.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. 休憩 65
  • 66.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. 第3部 チーム開発演習 66
  • 67.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. この部でやりたいこと 1つのリモートリポジトリに対して2人がそれ ぞれ作業出来る
  • 68.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 第2部でやったこと push: ローカルリポジトリの変更をリモートリポジトリに反映する 68 ローカルリポジトリ リモートリポジトリ push
  • 69.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. pushを2人同時にやると…? 69 機能Aを push 機能Bを push
  • 70.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. pushを2人同時にやると…? 70 機能Aと機能Bが 混ざってしまう
  • 71.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. pushを2人同時にやると…? 71 機能Aと機能Bが 混ざってしまう 混ざるのを避けるため 作業環境を分ける
  • 72.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. pushを2人同時にやると…? 72 機能Aと機能Bが 混ざってしまう 混ざるのを避けるため ブランチを分ける
  • 73.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ブランチについて 73 最新の状態 大元のブランチ →masterブランチ
  • 74.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ブランチについて 74 Aさんの作業ブランチ Bさんの作業ブランチ 最新の状態からブランチを分ける →チェックアウト という
  • 75.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ブランチについて 75 それぞれの変更をコミット
  • 76.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ブランチについて 76 masterブランチに反映 →マージ
  • 77.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. マージをするには? Pull Requestを作成する • GitHubの機能 • マージしてOKかコードレビューをする 77 Pull Request作成 コードレビュー
  • 78.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ブランチの作成方法 78 「ブランチ」をクリック
  • 79.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ブランチの作成方法 79 ブランチ名はGitHubアカウントとします
  • 80.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ブランチの作成方法 左メニューの「ブランチ」に項目が増えています ○が付いているのが現在のブランチ ブランチ名をダブルクリックすると切り替えられます 80
  • 81.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Pull Requestの作成方法 • ファイルを修正してadd→commit • 作成したブランチをリモートリポジトリにpush • masterブランチにpushしないように注意! • すると、GitHub上の画面がこのようになります 81
  • 82.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Pull Requestの作成方法 Compare & pull requestをクリック 82
  • 83.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Pull Requestの作成方法 83
  • 84.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Pull Requestの作成方法 84 Pull Requestの概要文 →どのような変更をしたかの説明を記載します。
  • 85.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Pull Requestの作成方法 85 Create pull requestをクリック
  • 86.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Pull Requestの作成方法 86
  • 87.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Pull Requestでのコードレビュー 87 Files changedで差分が見られる
  • 88.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Pull Requestでのコードレビュー 88 Merge pull requestをクリックしてマージ レビュワーは問題なければコメントを残す
  • 89.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. マージ分をローカルに反映する Pull Requestがマージされると • リモートリポジトリのmasterブランチに反映される • ローカルリポジトリのmasterブランチにはまだ未反映 89 作業ブランチ master master マージ
  • 90.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. マージ分をローカルに反映する ローカルリポジトリのmasterブランチに反映させる → pull という 90 作業ブランチ master master マージ pull
  • 91.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. マージ分をローカルに反映する 91 masterブランチに切り替え
  • 92.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. マージ分をローカルに反映する 92 「プル」をクリック
  • 93.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. マージ分をローカルに反映する 93 ブランチを作成して マージしている
  • 94.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 第3部の課題ワーク ここからはペアで作業します 机の上にあるペア番号を確認してください 94 スクリーン Aさん Bさん
  • 95.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 前準備(演習用ソースコードのコピー) https://github.com/kosshima/git- meetup180217 Aさんが上記のGitHubにアクセスして 「Fork」してください ※Fork: 他の人のGitHub上のリポジトリを自分のリポジトリにコ ピーする 95
  • 96.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Forkの方法 96
  • 97.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 前準備(Collaboratorsに登録) 97
  • 98.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 前準備(Collaboratorsに登録) 98
  • 99.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 前準備(Collaboratorsに登録) 99 BさんのGitHubアカウントを入力して Add collaboratorをクリック
  • 100.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 確認 サポーターが確認します 100
  • 101.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その1 準備は完了です! AさんのGitHubにある 「git-meetup180217」を AさんもBさんもcloneしてください 101
  • 102.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その1 ブランチを作成し、sample.htmlの ↑部分をそれぞれ書き換えてください 102
  • 103.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その1 AさんもBさんも同時に作業してください • アカウント名でブランチを作成 • sample.htmlに自分のアカウント名を追記 • add→commit→push • Pull Requestを作成 ここまで出来たらサポーターがチェックします 103
  • 104.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その1 BさんはAさんのPull Requestをレビューします • 問題なければその旨をコメント • マージする • Bさんのローカルリポジトリにpullして反映 • ブランチをmasterに切り替えてから 104
  • 105.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その1 AさんはBさんのPull Requestをレビューします • 問題なければその旨をコメント • マージする • Aさんのローカルリポジトリにpullして反映 105
  • 106.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その2 2人同時に同じ箇所を修正します まずmasterブランチにcheckoutして pullしてください 106
  • 107.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その2 次に先ほどとは別の名前で ブランチを作成し、sample.htmlの ↑部分をそれぞれ書き換えてください 最近食べた美味しかったものをそれぞれ書きます 107
  • 108.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その2 2人同時に行います • 先ほどとは別の名前でブランチを作成 • sample.htmlに好きな食べ物を追記 • add→commit→push • Pull Requestを作成 ここまで出来たらサポーターがチェックします 108
  • 109.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その2 AさんはBさんのPull Requestをレビューします • 問題なければその旨をコメント • マージする • Aさんのローカルリポジトリにpullして反映 • ブランチをmasterに切り替えてから 109
  • 110.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ペアで作業してみよう その2 BさんはAさんのPull Requestをレビューします • 問題なければその旨をコメント • マージする • Bさんのローカルリポジトリにpullして反映 110 ここで一回STOP コンフリクトが起こります ※コンフリクト:同じ箇所を修正し、修正が重複している状態
  • 111.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. コンフリクト 111
  • 112.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. コンフリクトの解消 112 後のコミット 先のコミット
  • 113.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. コンフリクトの解消 113
  • 114.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. コンフリクトの解消 114
  • 115.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. マージが可能に 115 マージします
  • 116.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. masterブランチの確認 116
  • 117.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. 第3部のまとめ • 作業前にブランチを作成する • 完了したらmasterブランチへPull Request • コードレビューをしてマージする • ローカルリポジトリにはpullで反映する • 同時に同じ箇所を修正しあったら コンフリクトが起こる • コンフリクトが起きても修正は可能 117
  • 118.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. おわりに 118
  • 119.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ローカルリポジトリでの作業 • ファイルの変更はaddしてcommit • commitしたときはコメントを残す 119 ローカルリポジトリ ステージング領域 commit commitコメント add
  • 120.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ローカルとリモートのやりとり clone : リモートリポジトリをローカルリポジトリにコピー pull : リモートリポジトリの変更をローカルリポジトリに反映 push : ローカルリポジトリの変更をリモートリポジトリに反映 120 ローカルリポジトリ リモートリポジトリ push pull clone
  • 121.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. ブランチについて 121 masterブランチ Pull Request作業用ブランチ
  • 122.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. まとめ GitとGitHubにはこれ以外にも便利な機能があります。 が、コマンドや機能を覚えるのはあとからでも出来ます。 まずは基本的な仕組みをしっかりおさえて 今後の開発で使っていきましょう! 122
  • 123.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved.Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. Appendix 123
  • 124.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Gitコマンドでの操作 • add $ git add ファイルパス • commit $ git commit –m "commitコメント"
  • 125.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Gitコマンドでの操作 • ブランチの作成 $ git branch ブランチ名 • 今のブランチを確認 $ git branch • ブランチの切り替え $ git checkout ブランチ名 • ブランチの作成+そのブランチに切り替え $ git checkout –b ブランチ名
  • 126.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Gitコマンドでの操作 • clone $ git clone リポジトリURL • pull $ git pull origin pullしたいブランチ名 • push $ git push origin pushしたいブランチ名
  • 127.
    Copyrig ht ©2017 Yahoo Japan Corporation. All Rig hts Reserved. Gitコマンドでの操作 "origin"ってなに? →リモートリポジトリのURLを指している。 毎回打つのが面倒なので"origin"という略称で代用出来るようにデ フォルトでなっている。 下の2つは同じことを表している。 $ git pull origin master $ git pull git@github.com:ユーザ名/リポジトリ名.git master 127