git-webtouchmeeting

25
そろそろGitのことも思いだしてあげてください。 2010/09/26

Transcript of git-webtouchmeeting

Page 1: git-webtouchmeeting

そろそろGitのことも思いだしてあげてください。

2010/09/26

Page 2: git-webtouchmeeting

自己紹介

名前 ひむら ともひこ

ハンドルとか ひむひむ えいる

twitter @eielh

最近の活動とかhiroshima.rbの運営iPhoneアプリの作成

いろいろお手伝いしてます

Page 3: git-webtouchmeeting

アジェンダ

•Gitについて•デモ•windowsで。•コマンドラインで。

•githubをつかってみる。•紹介程度にとどめておく話。

Page 4: git-webtouchmeeting

Gitについて

•バージョン管理システム•以前の状態に戻すことができる•変更履歴を調べることができる

•Git以外のバージョン管理システム•RCS•CVS•Subversion•Mercurial•Darcs•Bazaar

Page 5: git-webtouchmeeting

Subversionとの違い

•リポジトリが集中型ではなく分散型•集中型はリポジトリがひとつ。•分散型は利用者全員がリポジトリをもつ。•履歴の確認などにサーバにアクセスする必要がない

•差分管理ではない•以前の状態をそのまま保存している

Page 6: git-webtouchmeeting

インストール方法

•Windows•git extentions•http://code.google.com/p/gitextensions/downloads/list•msysgit•kdiff•git extentions•TortoiseGit (GUIクライアント)•http://code.google.com/p/tortoisegit/downloads/list

•(使いやすいけど個人的には非推奨)

Page 7: git-webtouchmeeting

インストール方法

•Mac•git-osx-installer•http://code.google.com/p/git-osx-installer/downloads/list•Mac ports•sudo port install git-core•gitx (gitkの代用として)•http://gitx.frim.nl/•gitbox•http://gitbox.pierlis.com/

Page 8: git-webtouchmeeting

インストール方法

•その他•yum install git-core•apt-get install git-core•aptitude install git•emerge git

Page 9: git-webtouchmeeting

重要な用語

•リポジトリ•バージョン管理をする上で必要なものが保存される場所

•コミット•復元ポイント•ひとつ前のコミットやファイル構成、メッセージなどの情報をもっている

•ワークツリー•実際に展開されているファイルやディレクトリ

•ステージングエリア•次のコミットを作成するための環境•インデックスとよばれていることもある

Page 10: git-webtouchmeeting

デモ

windowsでつかってみる

Page 11: git-webtouchmeeting

デモ やったこと

•リポジトリを作る•ステージングエリアに追加する•コミットする•何度か繰り返す•過去の状態にもどる•ヒストリー

Page 12: git-webtouchmeeting

デモ2

コマンドラインでつかってみる

Page 13: git-webtouchmeeting

デモ2 コマンドラインでつかってみる

•個人的な意見ですが Subversion に比べ簡単だと思う。

Page 14: git-webtouchmeeting

基本的なワークフロー

•リポジトリを作る or リポジトリをコピーする•git init (リポジトリを作る)•git clone [リポジトリのURL]•git clone user名@ホスト名:path/repo•git clone http://ホスト名:path/repo•git clone git://ホスト名:path/repo

プロジェクトのはじめに一度だけ行うこと

Page 15: git-webtouchmeeting

基本的なワークフロー

•変更をステージングエリアに追加する•git add . (変更したファイルすべてを追加)•git add -u (一度でもコミットに含めたファイルのみ追加)•新規作成したファイルは追加されない•git add [filename] (filenameを追加する

•状況がわからなくなったら•git status

•何を変更したのか確認したい場合•git diff

ファイルの編集を終えたら

Page 16: git-webtouchmeeting

基本的なワークフロー

•コミットされる内容をみたいとき•git diff --cached

•コミットする•git commit -m “メッセージ”•git commit (エディタが起動する)

•状況がわからなくなったら•git status

ステージングエリアの内容をコミットするとき

Page 17: git-webtouchmeeting

githubを使う

•githubとは•gitのホスティング & SNS & Wiki•リポジトリをおく場所として利用できる•他の人の活動をみることができる•公開リポジトリであれば制限なし•ディスクは300MBまで

•初期設定•sshの公開鍵を作成する必要がある•ssh-keygen•cat ~/.ssh/id_rsa.pub•git-guiでも作成できる•アカウントの設定 > ssh公開鍵

Page 18: git-webtouchmeeting

githubを使う

•リポジトリの作成•ダッシュボード > 新しいリポジトリの作成•あとは指示通りに

•アバターの設定•http://ja.gravatar.com/•gitxなのでアイコンが表示されるようになる•E-mailで紐付けされるようです

Page 19: git-webtouchmeeting

githubを使う

demo

Page 20: git-webtouchmeeting

githubを使う

•別のリポジトリに変更を送るには•git push を使用する

•別のリポジトリから変更を取得するには•git pull を使用する

•自前で外部向けのリポジトリを作成するには•gitosis を使うの便利

Page 21: git-webtouchmeeting

紹介程度の話 便利な機能

•git branch ブランチの利用•git stash 変更の一時退避•git bisect 2分探索による問題発生箇所検出•git svn subversionのリポジトリとやりとりをする•git tag コミットに名前をつける•git log ログの確認

Page 22: git-webtouchmeeting

紹介程度の話 参考になるサイト、書籍

•Website•ProGit•http://progit.org/book/ja/•Git チュートリアル•http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/user-manual.html

•書籍•入門Git• http://www.amazon.co.jp/%E5%85%A5%E9%96%80Git-%E6%BF%B1%E9%87%8E-%E7%B4%94-Junio-Hamano/dp/4798023809

Page 23: git-webtouchmeeting

Gitの構造•Gitを構成するオブジェクト•内容をsha-1でハッシュしたものを名前とする•内容が同じであれば同じ名前になる!•オブジェクトの種類(主なもの)•blob•ファイルの中身そのもの•tree•ディレクトリの中身•commit•基準となるディクトリになるtreeを保持•親のコミットを保持•メッセージや著者などを保持

Page 24: git-webtouchmeeting

Gitの構造

•オブジェクトの中身をみてみる•git cat-file -p [オブジェクトの名前]

•オブジェクトの種類をみてみる•git cat-file -t [オブジェクトの名前]

•オブジェクトの保存場所•.git/objects

Page 25: git-webtouchmeeting

ご静聴ありがとうございました。