GitHubで学ぶnバージョン管理¶ ↑
# : subtitle # サブタイトル : author
Masafumi Yokoyama
# : institution # 所属 : content-source
社内勉強会2013
: date
2013/04/26
: allotted-time
30m
: theme
nyankosakana
自己紹介¶ ↑
: システムズエンジニア
* 入社5年目 (('note:(高学年)'))
: フリーソフトウェアプログラマー
* Rubyist/Vimmer/Linuxer (('note:(属性)')) * GitHub/RubyGems.org (('note:(活動場所)')) * Rabbit Collaborators (('note:(It is this!)'))
話すこと¶ ↑
* バージョン管理について * バージョン管理システムについて * GitHubについて * GitHubをブラウザから使う方法
バージョン管理システムをn紹介する理由¶ ↑
# blockquote プログラマーにとって、\nとても便利なツールだから
キーワード¶ ↑
* 履歴 (('note:History')) * 共有 (('note:Share')) * 協業 (('note:Collaborate'))
話すこと¶ ↑
* ((*バージョン管理について*)) * バージョン管理システムについて * GitHubについて * GitHubをブラウザから使う方法
バージョン管理とは¶ ↑
((‘tag:center’)) ((‘tag:x-large’)) 変更履歴n ((‘note:へんこうりれき’))
バージョン管理とは¶ ↑
((‘tag:center’)) ((‘tag:x-large’)) ((*変更*))履歴n ((‘note:へんこうりれき’))
変更とは¶ ↑
* ファイルの追加・修正・削除 * ソースコード * ドキュメント * 画像 * etc...
変更とは¶ ↑
# blockquote # title = 達人プログラマー ヒント23: 常にソースコード\n管理を使用すること
常に¶ ↑
バージョン管理とは¶ ↑
((‘tag:center’)) ((‘tag:x-large’)) 変更((*履歴*))n ((‘note:へんこうりれき’))
履歴とは¶ ↑
# blockquote # title = Life of Reason (翻訳:達人プログラマー) 変更を積み重ねて進歩するには、記憶力が不可欠である。 過去を記憶できないものは同じ過ちを繰り返すのである。
進歩¶ ↑
履歴の例¶ ↑
* UNDO (Ctrl + z) * src_20130425_01.zip
((‘wait’))もっと便利に実現できる。
((‘wait’))((*そう、バージョン管理ならね。*))
バージョン管理¶ ↑
* 消えないUNDO * まるごとコピーより省容量 * 豊富なメタ情報を記録 * 誰が変更したか * いつ変更したか * どのバージョンで変更したか
話すこと¶ ↑
* バージョン管理について * ((*バージョン管理システムについて*)) * GitHubについて * GitHubをブラウザから使う方法
バージョン管理システム¶ ↑
# blockquote サッカー選手が((*スパイク*))を履くように、 プログラマーは((*バージョン管理システム*))を使う
サーバーとクライアント¶ ↑
: サーバー機能(リポジトリ)
* 変更履歴やメタ情報を保存
: クライアント機能
* ローカルのファイルをリポジトリへ登録 * リポジトリのファイルをローカルへ取得
用語¶ ↑
# RT caption = バージョン管理システムの用語 登録, 取得 (('tag:center'))commit, checkout
集中型と分散型¶ ↑
: 集中型
* 各クライアントが、一つの共有リポジトリに接続する
: 分散型
* 各クライアントがリポジトリ機能を持つ * リポジトリ間の連携が容易 * 通常、サーバー機に共有リポジトリを作成する
主なソフトウェア¶ ↑
: 集中型
* CVS * Subversion
: 分散型
* Git * Mercurial
主なソフトウェア¶ ↑
: 集中型
* CVS * Subversion
: 分散型
* ((*Git*)) * Mercurial
用語¶ ↑
# RT caption = Gitの用語(コマンド) , 登録, 取得 (('tag:center'))ローカルとリポジトリ, add\ncommit, checkout (('tag:center'))リポジトリ連携, push, pull
話すこと¶ ↑
* バージョン管理について * バージョン管理システムについて * ((*GitHubについて*)) * GitHubをブラウザから使う方法
GitHubを紹介する理由¶ ↑
# blockquote とても簡単にバージョン管理\nできるツールだから
Not GitHub¶ ↑
* 自前のサーバーを構築 * 物理構築・環境構築・運用が大変 * レンタルサーバー(VPSなど) * 環境構築・運用が大変 * ローカルのリポジトリのみ * クラッシュこわい * 他の場所で使えない
GitHub¶ ↑
* 簡単に共有リポジトリが使える * 無料 * ((*全てのファイルが公開される*)) * 人数制限なし * ブラウザから簡単管理 * ブラウザだけでも使える
話すこと¶ ↑
* バージョン管理について * バージョン管理システムについて * GitHubについて * ((*GitHubをブラウザから使う方法*))
How to GitHub¶ ↑
使える場所¶ ↑
* コマンドライン * GUIアプリケーション * ブラウザ * ブラウザ (Gist)
コマンドライン¶ ↑
(1) ローカルにGitをインストール (2) ブラウザからユーザー登録 (3) ローカルでSSH鍵作成 (4) ブラウザから公開鍵を登録 (5) ブラウザで共有リポジトリ作成 (6) 作業開始
ユーザー登録¶ ↑
: 参考 ((‘note:www.google.co.jp/search?q=github’))
GUIアプリケーション¶ ↑
: GitHub for Windows
* Windowsから簡単にGitHubを使えるGUIアプリケーション
((‘note:www.google.co.jp/search?q=github+for+windows’))
ブラウザから使う¶ ↑
(1) (('del:ローカルにGitをインストール')) (2) ((*ブラウザからユーザー登録*)) (3) (('del:ローカルでSSH鍵作成')) (4) (('del:ブラウザから公開鍵を登録')) (5) ((*ブラウザで共有リポジトリ作成*)) (6) ((*作業開始*))
デモ¶ ↑
リポジトリ作成¶ ↑
# image # src = images/hello/github-home.png # relative_height = 100
リポジトリ作成¶ ↑
# image # src = images/hello/create-repo.png # relative_height = 100
ファイル作成¶ ↑
# image # src = images/hello/home-created-repo.png # relative_height = 100
ファイル作成¶ ↑
# image # src = images/hello/edit-create.png # relative_height = 100
ファイル作成¶ ↑
# image # src = images/hello/edit-create-bottom.png # relative_height = 100
ファイル作成¶ ↑
# image # src = images/hello/home-created-file.png # relative_height = 100
ファイル作成¶ ↑
# image # src = images/hello/file-create.png # relative_height = 100
ファイル作成¶ ↑
# image # src = images/hello/history-create.png # relative_height = 100
ファイル作成¶ ↑
# image # src = images/hello/diff-create.png # relative_height = 100
ファイル修正¶ ↑
# image # src = images/hello/file-create.png # relative_height = 100
ファイル修正¶ ↑
# image # src = images/hello/edit-update.png # relative_height = 100
ファイル修正¶ ↑
# image # src = images/hello/edit-update-bottom.png # relative_height = 100
ファイル修正¶ ↑
# image # src = images/hello/file-update.png # relative_height = 100
ファイル修正¶ ↑
# image # src = images/hello/history-update.png # relative_height = 100
差分比較¶ ↑
# image # src = images/hello/diff-update.png # relative_height = 100
差分比較¶ ↑
# image # src = images/hello/blame.png # relative_height = 100
ブラウザから使う (Gist)¶ ↑
(1) (('del:ローカルにGitをインストール')) (2) ((*ブラウザからユーザー登録*)) (3) (('del:ローカルでSSH鍵作成')) (4) (('del:ブラウザから公開鍵を登録')) (5) (('del:ブラウザで共有リポジトリ作成')) (6) ((*作業開始*))
ファイル作成¶ ↑
# image # src = images/gist/new-gist.png # relative_height = 100
ファイル作成¶ ↑
# image # src = images/gist/gist-home-new.png # relative_height = 100
ファイル修正¶ ↑
# image # src = images/gist/gist-editor.png # relative_height = 100
ファイル修正¶ ↑
# image # src = images/gist/gist-home-updated.png # relative_height = 100
差分比較¶ ↑
# image # src = images/gist/gist-diff.png # relative_height = 100
まとめ¶ ↑
バージョン管理システムをn紹介する理由¶ ↑
# blockquote プログラマーにとって、\nとても便利なツールだから
GitHubを紹介する理由¶ ↑
# blockquote とても簡単にバージョン管理\nできるツールだから
キーワード¶ ↑
* (('del:履歴')) (('note:History')) * (('del:共有')) (('note:Share')) * 協業 (('note:Collaborate')) * branch, trunk, merge * clone (fork), pull request
((‘tag:right’))つづく。