git-webtouchmeeting
-
Upload
tomohiko-himura -
Category
Technology
-
view
359 -
download
0
Transcript of git-webtouchmeeting
そろそろGitのことも思いだしてあげてください。
2010/09/26
自己紹介
名前 ひむら ともひこ
ハンドルとか ひむひむ えいる
twitter @eielh
最近の活動とかhiroshima.rbの運営iPhoneアプリの作成
いろいろお手伝いしてます
アジェンダ
•Gitについて•デモ•windowsで。•コマンドラインで。
•githubをつかってみる。•紹介程度にとどめておく話。
Gitについて
•バージョン管理システム•以前の状態に戻すことができる•変更履歴を調べることができる
•Git以外のバージョン管理システム•RCS•CVS•Subversion•Mercurial•Darcs•Bazaar
Subversionとの違い
•リポジトリが集中型ではなく分散型•集中型はリポジトリがひとつ。•分散型は利用者全員がリポジトリをもつ。•履歴の確認などにサーバにアクセスする必要がない
•差分管理ではない•以前の状態をそのまま保存している
インストール方法
•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
•(使いやすいけど個人的には非推奨)
インストール方法
•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/
インストール方法
•その他•yum install git-core•apt-get install git-core•aptitude install git•emerge git
重要な用語
•リポジトリ•バージョン管理をする上で必要なものが保存される場所
•コミット•復元ポイント•ひとつ前のコミットやファイル構成、メッセージなどの情報をもっている
•ワークツリー•実際に展開されているファイルやディレクトリ
•ステージングエリア•次のコミットを作成するための環境•インデックスとよばれていることもある
デモ
windowsでつかってみる
デモ やったこと
•リポジトリを作る•ステージングエリアに追加する•コミットする•何度か繰り返す•過去の状態にもどる•ヒストリー
デモ2
コマンドラインでつかってみる
デモ2 コマンドラインでつかってみる
•個人的な意見ですが Subversion に比べ簡単だと思う。
基本的なワークフロー
•リポジトリを作る or リポジトリをコピーする•git init (リポジトリを作る)•git clone [リポジトリのURL]•git clone user名@ホスト名:path/repo•git clone http://ホスト名:path/repo•git clone git://ホスト名:path/repo
プロジェクトのはじめに一度だけ行うこと
基本的なワークフロー
•変更をステージングエリアに追加する•git add . (変更したファイルすべてを追加)•git add -u (一度でもコミットに含めたファイルのみ追加)•新規作成したファイルは追加されない•git add [filename] (filenameを追加する
•状況がわからなくなったら•git status
•何を変更したのか確認したい場合•git diff
ファイルの編集を終えたら
基本的なワークフロー
•コミットされる内容をみたいとき•git diff --cached
•コミットする•git commit -m “メッセージ”•git commit (エディタが起動する)
•状況がわからなくなったら•git status
ステージングエリアの内容をコミットするとき
githubを使う
•githubとは•gitのホスティング & SNS & Wiki•リポジトリをおく場所として利用できる•他の人の活動をみることができる•公開リポジトリであれば制限なし•ディスクは300MBまで
•初期設定•sshの公開鍵を作成する必要がある•ssh-keygen•cat ~/.ssh/id_rsa.pub•git-guiでも作成できる•アカウントの設定 > ssh公開鍵
githubを使う
•リポジトリの作成•ダッシュボード > 新しいリポジトリの作成•あとは指示通りに
•アバターの設定•http://ja.gravatar.com/•gitxなのでアイコンが表示されるようになる•E-mailで紐付けされるようです
githubを使う
demo
githubを使う
•別のリポジトリに変更を送るには•git push を使用する
•別のリポジトリから変更を取得するには•git pull を使用する
•自前で外部向けのリポジトリを作成するには•gitosis を使うの便利
紹介程度の話 便利な機能
•git branch ブランチの利用•git stash 変更の一時退避•git bisect 2分探索による問題発生箇所検出•git svn subversionのリポジトリとやりとりをする•git tag コミットに名前をつける•git log ログの確認
紹介程度の話 参考になるサイト、書籍
•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
Gitの構造•Gitを構成するオブジェクト•内容をsha-1でハッシュしたものを名前とする•内容が同じであれば同じ名前になる!•オブジェクトの種類(主なもの)•blob•ファイルの中身そのもの•tree•ディレクトリの中身•commit•基準となるディクトリになるtreeを保持•親のコミットを保持•メッセージや著者などを保持
Gitの構造
•オブジェクトの中身をみてみる•git cat-file -p [オブジェクトの名前]
•オブジェクトの種類をみてみる•git cat-file -t [オブジェクトの名前]
•オブジェクトの保存場所•.git/objects
ご静聴ありがとうございました。