オールフェスタ Git勉強会資料 (public)
-
Upload
shunsuke-tadokoro -
Category
Engineering
-
view
394 -
download
1
description
Transcript of オールフェスタ Git勉強会資料 (public)
Git でやろう。2014.07.28
オールフェスタ 社内勉強会
この勉強会の狙い
1.Gitの導入メリットを知る
2.基本的な使い方を知る
大きな狙いそれ自体が直接価値を生まない作業を、 ツールの力を使って減らし、 価値を生む作業に全力を注ぐことで、 仕事をもっとたのしくする。
1. 導入のメリット
2. 基本的な仕組みと流れ
3. 実践
アジェンダ
導入のメリット
• ファイル管理が標準化できる
• コードレビューが容易に行える
• 複数人での開発を効率的に行える
ファイル管理を 標準化
AFあるある
別バージョンを作りたいから 違う名前にして保存しよう!
別verファイル:index2.html
元ファイル: index.html
別バージョンを名前をつけて保存
・・・。
_index.html index_0730.html index_最新.html
結果、カオス。
index_田所修正.html indexのコピー.html 0730/index.html
AFあるある
楽しくない© タイトル:ブラックジャックによろしく 著作者名: 佐藤秀峰 サイト名: 漫画 on web URL: http://mangaonweb.com/
Gitなら!「いつ」
「だれが 」
「どんな目的のために」
「なにをした」をもとに
ファイルを管理できる。
「コミット」
「なにをした」の単位を
「コミット」という。
(あとでまた出てくる)
コミット
コミット
コミット
実際の画面
「ファイル管理にムダに気を使う」
という「直接価値を生まない作業」を
なくす。
コードレビューを 容易に
コードレビュー?コードレビュー(英: Code review)は、ソフトウェ
ア開発工程で見過ごされた誤りを検出・修正するため
にソースコードの体系的な検査(査読)を行うこと。
ソフトウェア品質を高めると同時に開発スキルの向上
を図ることができる。- wikipedia
page.css、修正しました!
追加・変更箇所がわからない
AFあるある
(page.cssのどこだよ…)
楽しくない© タイトル:ブラックジャックによろしく 著作者名: 佐藤秀峰 サイト名: 漫画 on web URL: http://mangaonweb.com/
Gitなら!「なにが追加された」
「なにが削除された 」
「どう変更された」を
とても簡単に確認できる。
実際の画面
実際の画面
変更・追加・削除を 簡単に確認できるので、コードレビューを
お互いにもっと活発にやっていきたい
→品質の向上 →スキルの向上
複数人での開発を 効率的に
わーいできた!
同じファイルを同時に編集
AFあるある
・・・。
結果、衝突。
AFあるある
楽しくない
© タイトル:ブラックジャックによろしく 著作者名: 佐藤秀峰 サイト名: 漫画 on web URL: http://mangaonweb.com/
・・・。
衝突を避けるために片方が待機
AFあるある
楽しくない
© タイトル:ブラックジャックによろしく 著作者名: 佐藤秀峰 サイト名: 漫画 on web URL: http://mangaonweb.com/
Gitなら!リポジトリ(ファイル置き場)と
作業ツリー(作業場)が
別になっているので、
同じファイルを
同時に編集しても問題ない。
Gitなら!競合が起きたら、
起きている箇所を
知らせたうえで、
どのようにするかを
決定できる。
実際の画面
競合の解決• 自分を相手に合わせる
• 相手を自分に合わせる←トラブルになりやすい
• 両方の変更を確認して手作業で合わせ込む
導入のメリット
• ファイル管理が標準化できる
• コードレビューが容易に行える
• 複数人での開発を効率的に行える
基本的な仕組みと流れ用語はSourceTreeでの呼び方に準じます。
全体像リモートリポジトリ
ローカルリポジトリ
インデックス
作業ツリー 他の開発者
いま作業している対象のファイルを
置いておくところ
作業ツリー
ひとまとめにしてコミットしたいファイルを
とりあえず置いておくところ
インデックス
作業ツリー インデックス
ステージ(ング)コミットしたいファイルを登録すること
リモートリポジトリに送るコミットを
記録する場所
ローカルリポジトリ
インデックス
コミット「なにをした」の単位を記録すること
ローカルリポジトリ
複数人で共有するリポジトリ
リモートリポジトリ
ローカルリポジトリ
プッシュローカルリポジトリの内容を リモートリポジトリに送ること
リモートリポジトリ
リモートリポジトリ
プルプッシュの逆。 リモートリポジトリの内容を ローカルリポジトリに反映
ローカルリポジトリ
流れは
「郵便を送る際の手順」
に似ている。
郵便 Git手紙を書く 作業ツリーの
ファイルを編集
封筒に入れる インデックスに ステージする
封筒の封をする コミットする
ポストにいれる プッシュする
受け取る プルする
なんとなくの理解でOK。
やってくうちに覚えます。
やってくうちに覚えられない場合は…フフフ…
実践
その前にいったん休憩。
休憩後は実際に触ってみよう。