2015年2月23日 wbtoyama 勉強会 はじめようgit
TRANSCRIPT
Git分散バージョン管理システム
WordBench 富山 勉強会2015 年 2 月 23 日
みなさんバージョン管理は使っていますか?
デザイナーコーダー
プログラマーディレクター
書き手
使ってる 使ってない
2015 年 2 月 23 日 WordBench 富山
計
計
デザイナーさんに聞きました
プログラマーさんに聞きました
ちなみに数は推測です
で、バージョン管理って何?
バージョン管理 ( システム )
とは• バージョンを管理するもの
• 過去のファイルの履歴とか見れる
• 誰が編集したか分かる
• いつ編集したかわかる
• 過去に戻れる
あれ?便利そうじゃない?
ケース 1
• ぼく「右側のサイドバーがカラム落ちしていた件、修正しましたー。 style.cssをアップロードしますねー ( ぽちぽち ) 」
• こーだーさん「あれっ?わたしが書いたリストの背景画像のスタイルシートが無くなってるんですけど?」
• ぼく「ええっ、先週の style.css から作ったんですけど」
• コーダーさん「お前いつのファイルあげてんだよ!」
ケース 2
お客さん「ちょっとちょっと、ここバグがあるっぽいんだが?」
お客さん「何度やってもなおらないんだが?どうなってるんだが?」
ぼく「 ( うへー 2 年前の案件だ… ) 」
ぼく「わかりました見てみますー」
ぼく「 ( このコード書いたの俺かよ…覚えてねぇ… ) 」
ぼく「 ( これは…お客さんが書き足したんじゃないのか…? ) 」
ぼく「 ( でも確証は無いし…調べるか… ) 」
三日後
ぼく「こっ、この関数は他の外注が作った関数じゃないか!!」
ぼく「この調査費用だれに出してもらおう…」
幸い僕の携わった案件ではお客さんが優しくてこういうことはありませんでした。
といった問題も( だいたい )すべて解決できます!
今日覚えてもらいたいこと• バージョン管理は便利!
ケース 1 の場合• ダーティーリード
• 汚い読み出し
• 他の人が編集していたのに古いファイルで上書きしてしまったことが原因
バージョン管理を使うと…
ケース 1 の場合• 他の誰かが更新していた場合、警告を受ける!
• ダーティーリードが起こらない!
• 編集箇所は行単位で管理される!
• CSS で該当箇所のみが反映されるので人の変更点を消したりしない!
• 大規模な変更を入れる場合、ファイルをロックする事も可能
ケース 2 の場合• 古いプロジェクトを追いかけられない
• コードの変更点と変更日時、編集者調べることができない
バージョン管理を使うと…
ケース 2 の場合• いつでも最新版のコードを取り出し可能!
• 過去に遡って納品時のデータを取り出せる!
• 編集した日時、編集者を特定できる!
• これ僕の編集した所じゃありません!って言える
• 「三日経てば他人のコード」説
始めようバージョン管理
バージョン管理ができるソフト
• DreamWeaver
• SublimeText
• Local History
• Sublimerge ( 有料 )
• その他いろいろ
今日覚えてもらいたいこと• バージョン管理は便利!
• エディタでだってできるよ
バージョン管理システム• CVS
• Subversion (svn)
• Mercurial (hg)
• Git
CVS• 古い
• 面倒
• 堅い
• CVS? CSV?
• 無理
すべて個人の見解です
CVS• Concurrent Version System の略
• 過去のコンピュータ技術の発展に寄与した偉いバージョン管理システム
• 現在のバージョン管理システムの根幹を作った
• 未だにガッチリしたシステム開発では利用されている
すべて個人の見解です
Subversion• そこそこお手軽
• CSV の後釜
• 企業での採用率ナンバーワン
• 集中管理
• WordPress の開発も Subversion
Mercurial• 水銀
• Mercury (水星、水銀 )
• hg (Hg: 水銀 )
• Git と大ゲンカ
Git• ギット• ジットって呼ばないで…
• gif: ぎふ?じふ?
• Subversion の後釜
• なうでやんぐなバージョン管理
Git• Linux の開発に採用
• というより Linux の為に開発
• そこで Mercurial と大げんか
• 分散バージョン管理システム
今日覚えてもらいたいこと• バージョン管理は便利!
• エディタでだってできるよ
• CVS -> Subversin -> Git っていう歴史
Git と GitHub
Git と GitHub• Git をみんなで利用するにはサーバが必要
• サーバを立てるのは難しいよね
• じゃあ僕がサーバ立ててあげるよみんなで使ってね
• Github登場
GitHub• なうでやんぐでオープンなプロジェクトがだいたい
GitHub
• SublimeText のプラグインも GitHub で公開されている物多数
• WordPress のプラグインも GitHub で公開されている物多数
なんで WordPress のプラグインが GitHub 使うの?
• WordPress公式のプラグインは Subversion を利用させられる
• でも公式に掲載されるには審査が必要
• 個人でさくっと公開するのであれば GitHub が便利
GitHub の注意点• 基本的にすべて公開
• プライベートリポジトリは有料
• 英語ベース
Git と BitBucket
GitHub っぽいけれど• 日本語!• プロジェクト管理もできる
• 人数が増えたら有料
• 5 人まで無料
• オススメです!
今日覚えてもらいたいこと• バージョン管理は便利!
• エディタでだってできるよ
• CVS -> Subversin -> Git っていう歴史
• Git と GitHub と BitBucket
で、どうすれば良いの?
• 少人数の案件を BitBucket でやってみる
• 慣れてきたら GitHub も使ってみる
GUI アプリがあるのでそちらを使いましょう
http://qiita.com/camelmasa/items/cd759b95edc69df58e1e
GitHub
https://mac.github.com
ただしマッキントッシュに限る
SourceTree
https://www.atlassian.com/ja/software/sourcetree/overview
SourceTree• 色々と見易い
• BitBucket はもちろん、 GitHub でも使える ( らしい )
• 日本語対応• ただし…
• 初めて使うにはそれでも大変
• WordBench名古屋で 2 時間かかってできなかったとか…
• セミナーで 4 時間ぐらいかかりました
ちなみに…
SourceTree と BitBucket のセミナーがあったらみなさん参加されますか?
というわけで
• SourceTree と BitBucket で案件をやってみる
• 慣れてきたら GitHub でも公開してみる
• 人のプラグインにちょっかいを出す !
今日覚えてもらいたいこと(完 )
• バージョン管理は便利!
• エディタでだってできるよ
• CVS -> Subversin -> Git っていう歴史
• Git と GitHub と BitBucket
• SourceTree でやってみよう
お疲れ様でした
覚えてもらいたい用語• コミット
• 変更点を確定させること
• マージ
• 併合。二つを一緒にすること。
• 差分
• ファイルとファイルの変更点