Gitの紹介

25
Git ののの ShootMORII 2011/06/30 Pasta0915[at]gmail.com

description

ちょこちょこ間違ってるけどまぁその辺は目をつぶってください…

Transcript of Gitの紹介

Page 1: Gitの紹介

Git の紹介

ShootMORII2011/06/30

Pasta0915[at]gmail.com

Page 2: Gitの紹介

About me• Shuto MORII aka. Pasta-K

– Hatena : id:Pasta-K– Twitter : @pastak– http://pastak.cosmio.net/

• Online.sg 主宰 (with sora_h• 京都クリエイティブワークショップ代表• OSC Kansai@Kyoto 実行委員• Javascript (GreaseMonkey) , PHP and so o

n..– Basic, Ruby, Java( on Android), Objective-C2.0

• Etc

Page 3: Gitの紹介

Agenda• What’s “Git”

– バージョン管理システムとは?– バージョン管理のおおまかな流れ– Github について

• How to start Git and Github– Install Git– Setup Github

• Let’s try “Git”– How to use “Git”– Practice working with Git

Page 4: Gitの紹介

What’s “Git”?

•分散型バージョン管理システムの一種– CVS, Subversion– ファイルのバージョンを管理する

•製作日時•製作者•更新内容(更新差分)

• Linuxカーネルのバージョン管理用にリーナス氏によって開発

Page 5: Gitの紹介

ファイルのバージョン管理?• ソースコードを更新したら bug が消えな

くなったら・・・?– Ctrl + Z で戻る?

• 一回エディタを閉じたら戻れない– 保存時に過去のファイルも取っておく?

• hoge_20110614.rb• hoge_20110615.rb• hoge_old.rb

• もっと cool に管理したい!!⇒ バージョン管理システムの出番

Page 6: Gitの紹介

Clone & Push(Use only you)

You

Master

Your localBranch

clone

push

Page 7: Gitの紹介

Clone, Push and Pull(Team Development)

You

MasterBranch

YourBranch

Team Master

MasterLocalBranch

yourLocalBranch

A’sBranch

A

A’sLocalBranch

cloneclone push pushpush

folk

pull

pull

Page 8: Gitの紹介

System of Merge

AYou

p(“hello”)

Master sub plus(a,b){ return a+b }p(“hello”)

p(“hello”) a=plus(10,

6) p(a)

sub plus(a,b){return a+b

}p(“hello”) a=plus(10,6)p(a) pull

pull

folk

folk

merge

Page 9: Gitの紹介

バージョン管理の流れ1. ファイルをリポジトリに登録する。

・今回は Github を使います

2. ファイルをリポジトリからローカル環境に取り出す(チェックアウト)

3. ローカル環境で、ファイルに対し変更を行う。

4. 変更したファイルをリポジトリに書き戻す(チェックイン)

Page 10: Gitの紹介

Github について

• https://github.com/ • Git のプロジェクトホスティングサービス• 無料アカウントで 100MB 使用可能• 1クリックで fork したり出来る。• ブラウザ上でディレクトリの中身を見た

りファイルを参照することも可能。

Page 11: Gitの紹介

My Github Page

https://github.com/pastak

Page 12: Gitの紹介

Install Git• Have you finished install git ?

– http://code.google.com/p/msysgit/

• これで Git が使えるようになりました• Path などを通すのがややこしいので、Windows スタートメニュー -> Git -> Git Bashを使うようにすると楽です。( ls とかも使える

C:\>git --versiongit version 1.6.5.1.1367.gcd48

Page 13: Gitの紹介

Setup Git & Github

1. Github アカウントを作る・省略

2. SSH 通信用の鍵を用意して github に登録

3. Git に自分の情報を登録する

Page 14: Gitの紹介

SSH用の鍵を作成する$ cd ~/.ssh $ mkdir key_backup $ cp id_rsa* key_backup $ rm id_rsa* $ ssh-keygen -t rsa -C   " 自分のメールアドレス

" # 鍵を実際に作る$ Enter passphrase (empty for no passphrase): # パスフレーズを入力

Page 15: Gitの紹介

Github のアカウントに紐付ける

• https://github.com/account にアクセス• SSH Public Key をクリック• add another public key をクリック• ~.ssh/id_rsa.pub の中身をコピペ

確認用コマンド$ ssh [email protected]

Page 16: Gitの紹介

Git に自分の情報を登録

•変更を共有したときに共有する情報を登録します。– ちゃんと登録しないとマシン名が出たりとか残念な感じになるかも…

•他にも色々あるけどとりあえずこれで OK

$ git config --global user.name " 自分のユーザー名 "$ git config --global user.email " 自分のメールアドレス "

Page 17: Gitの紹介

How to use Git (1)

• 作業用のディレクトリを作ってローカルに git レポジトリを作成する

• いつも通りファイルを作成する

$ mkdir testproject$ cd testproject$ git init

Page 18: Gitの紹介

How to use Git (2)

•ローカルのレポジトリにファイルを追加する

•ローカルレポジトリに変更を適用する

•ローカルだけで管理するなら基本はこれだけ

$ git add hoge.rb foo.rb README# git add <file> [<file>…]

$ git commit –m’ first update’# git commit –m’ コメント’

Page 19: Gitの紹介

How to push

•リモートレポジトリを originという名前で登録

•ローカルレポジトリのブランチ (master)をリモートレポジトリ (origin)に push– まぁアップするみたいなもの

$ git remote add origin [email protected]: ユーザー名 / 作ったプロジェクト名 .git

$ git push origin master

Page 20: Gitの紹介

Pull requestする人• folkしたプロジェクトページ内の Pull

requestボタンを押す•適当にコメントを書く

すると folk元の人に通知メールが行きます

Page 21: Gitの紹介

Pull requestされる人•相手のレポジトリを手元に取り寄せる

$ git checkout master$ git remote add [name] git://github.com/[name]/[jobs].git$ git fetch [name]$ git merge [name]/[project_name]$ git push origin master

Page 22: Gitの紹介

Tips:差分を確認する

$ git diff

diff --git a/readme.txt b/readme.txtindex 277c8cc..5eed5b3 100644--- a/readme.txt+++ b/readme.txt@@ -1 +1,2 @@ This is a readme file.+Nice to meet you.

Page 23: Gitの紹介

Tips:作業ログを確認する$ git logcommit 6d97800229c8b9ed98f8153bc2e032aee0b06a66Author: @pastak <[email protected]>Date: Tue Jul 20 18:22:09 2010 +0900 add key config. - j : go2next - k: go2prev

commit 8fecdf65f35a351c1ebcebac758d9e8286e82463Author: @pastak <[email protected]>Date: Tue Jul 20 18:18:26 2010 +0900 add check json path. if json file path is false, it will display prompt.

Page 24: Gitの紹介

まとめ• Git を使えばファイルのバージョン管理を

簡単にコマンドで行えるようになります• pull や merge などを使えば複数人での開

発もスムーズにすることが出来ます• 詳しくは僕がセプキャン 2009 で習った

ときの資料や git のチートシート ( コマンドの一覧表 ) を見てください

Page 25: Gitの紹介

参考文献一覧• Github を Windows で使ってみる 2011 年版 | Num

b. – http://wp.graphact.com/2011/02/07/github-windows-2011

• Git の基礎練習 – http://www.hyuki.com/techinfo/gitinit.html

• github で pull request もらったので merge してみる - 狐の王国 – http://d.hatena.ne.jp/KoshianX/20080616/1213581933

• A-Liaison BLOG: github で pull request をされたとき・するときの手順– http://akisute.com/2011/02/github-pull-request.html

• Help.GitHub - Send pull requests – http://help.github.com/send-pull-requests/