Git の紹介 ShootMORII 2011/06/30 Pasta0915[at]gmail.com
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 on.. Basic, Ruby, Java( on Android), Objective-C2.0 Etc
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
What’s “Git”? 分散型バージョン管理システムの一種 CVS, Subversion ファイルのバージョンを管理する 製作日時 製作者 更新内容(更新差分) Linuxカーネルのバージョン管理用にリーナス氏によって開発
ファイルのバージョン管理? ソースコードを更新したら bug が消えなくなったら・・・? Ctrl + Z  で戻る? 一回エディタを閉じたら戻れない 保存時に過去のファイルも取っておく? hoge_20110614.rb hoge_20110615.rb hoge_old.rb もっと cool に管理したい!! ⇒  バージョン管理システムの出番
Clone & Push (Use only you) You Master Your local Branch clone push
Clone, Push and Pull (Team Development) You Master Branch Your Branch Team Master Master Local Branch your Local Branch A’s Branch A A’s Local Branch clone clone push push push folk pull pull
System of Merge p(“hello”)  A You 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
バージョン管理の流れ ファイルをリポジトリに登録する。 ・今回は Github を使います ファイルをリポジトリからローカル環境に取り出す(チェックアウト) ローカル環境で、ファイルに対し変更を行う。 変更したファイルをリポジトリに書き戻す(チェックイン)
Github について https:// github.com /   Git のプロジェクトホスティングサービス 無料アカウントで 100MB 使用可能 1クリックで fork したり出来る。 ブラウザ上でディレクトリの中身を見たりファイルを参照することも可能。
My Github Page https:// github.com/pastak
Install Git Have you finished install git ? http:// code.google.com/p/msysgit /   これで Git が使えるようになりました Path などを通すのがややこしいので、 Windows  スタートメニュー  -> Git -> Git Bash を使うようにすると楽です。( ls とかも使える  C:\>git --version git version 1.6.5.1.1367.gcd48
Setup Git & Github Github アカウントを作る ・省略 SSH  通信用の鍵を用意して github に登録 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):  # パスフレーズを入力
Github のアカウントに紐付ける https:// github.com /account   にアクセス SSH Public Key をクリック add another public key  をクリック ~.ssh/id_rsa.pub  の中身をコピペ 確認用コマンド $ ssh git@github.com
Git に自分の情報を登録 変更を共有したときに共有する情報を登録します。 ちゃんと登録しないとマシン名が出たりとか残念な感じになるかも… 他にも色々あるけどとりあえずこれでOK $ git config --global user.name " 自分のユーザー名 " $ git config --global user.email " 自分のメールアドレス "
How to use Git (1) 作業用のディレクトリを作ってローカルに git レポジトリを作成する いつも通りファイルを作成する $ mkdir testproject $ cd testproject $ git init
How to use Git (2) ローカルのレポジトリにファイルを追加する ローカルレポジトリに変更を適用する ローカルだけで管理するなら基本はこれだけ $ git add hoge.rb foo.rb README # git add <file> [<file>…] $ git commit –m’ first update’ # git commit –m’ コメント’
How to push リモートレポジトリをoriginという名前で登録 ローカルレポジトリのブランチ(master)をリモートレポジトリ(origin)にpush まぁアップするみたいなもの $ git remote add origin git@github.com: ユーザー名 / 作ったプロジェクト名 .git $ git push origin master
Pull requestする人 folkしたプロジェクトページ内のPull requestボタンを押す 適当にコメントを書く するとfolk元の人に通知メールが行きます
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
Tips:差分を確認する $ git diff diff --git a/readme.txt b/readme.txt index 277c8cc..5eed5b3 100644 --- a/readme.txt +++ b/readme.txt @@ -1 +1,2 @@ This is a readme file. +Nice to meet you.
Tips:作業ログを確認する $ git log commit 6d97800229c8b9ed98f8153bc2e032aee0b06a66 Author: @pastak <pasta0915@gmail.com> Date:  Tue Jul 20 18:22:09 2010 +0900 add key config. - j : go2next - k: go2prev commit 8fecdf65f35a351c1ebcebac758d9e8286e82463 Author: @pastak <pasta0915@gmail.com> Date:  Tue Jul 20 18:18:26 2010 +0900 add check json path. if json file path is false, it will display prompt.
まとめ Git を使えばファイルのバージョン管理を簡単にコマンドで行えるようになります pull や merge などを使えば複数人での開発もスムーズにすることが出来ます 詳しくは僕がセプキャン 2009 で習ったときの資料や git のチートシート ( コマンドの一覧表 ) を見てください
参考文献一覧 Github  を  Windows  で使ってみる  2011  年版  | Numb.  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/

Gitの紹介

  • 1.
    Git の紹介 ShootMORII2011/06/30 Pasta0915[at]gmail.com
  • 2.
    About me ShutoMORII 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 on.. Basic, Ruby, Java( on Android), Objective-C2.0 Etc
  • 3.
    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
  • 4.
    What’s “Git”? 分散型バージョン管理システムの一種CVS, Subversion ファイルのバージョンを管理する 製作日時 製作者 更新内容(更新差分) Linuxカーネルのバージョン管理用にリーナス氏によって開発
  • 5.
    ファイルのバージョン管理? ソースコードを更新したら bugが消えなくなったら・・・? Ctrl + Z で戻る? 一回エディタを閉じたら戻れない 保存時に過去のファイルも取っておく? hoge_20110614.rb hoge_20110615.rb hoge_old.rb もっと cool に管理したい!! ⇒ バージョン管理システムの出番
  • 6.
    Clone & Push(Use only you) You Master Your local Branch clone push
  • 7.
    Clone, Push andPull (Team Development) You Master Branch Your Branch Team Master Master Local Branch your Local Branch A’s Branch A A’s Local Branch clone clone push push push folk pull pull
  • 8.
    System of Mergep(“hello”) A You 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
  • 9.
    バージョン管理の流れ ファイルをリポジトリに登録する。 ・今回はGithub を使います ファイルをリポジトリからローカル環境に取り出す(チェックアウト) ローカル環境で、ファイルに対し変更を行う。 変更したファイルをリポジトリに書き戻す(チェックイン)
  • 10.
    Github について https://github.com / Git のプロジェクトホスティングサービス 無料アカウントで 100MB 使用可能 1クリックで fork したり出来る。 ブラウザ上でディレクトリの中身を見たりファイルを参照することも可能。
  • 11.
    My Github Pagehttps:// github.com/pastak
  • 12.
    Install Git Haveyou finished install git ? http:// code.google.com/p/msysgit / これで Git が使えるようになりました Path などを通すのがややこしいので、 Windows スタートメニュー -> Git -> Git Bash を使うようにすると楽です。( ls とかも使える C:\>git --version git version 1.6.5.1.1367.gcd48
  • 13.
    Setup Git &Github Github アカウントを作る ・省略 SSH 通信用の鍵を用意して github に登録 Git に自分の情報を登録する
  • 14.
    SSH用の鍵を作成する $ cd~/.ssh $ mkdir key_backup $ cp id_rsa* key_backup $ rm id_rsa* $ ssh-keygen -t rsa -C   &quot; 自分のメールアドレス &quot; # 鍵を実際に作る $ Enter passphrase (empty for no passphrase): # パスフレーズを入力
  • 15.
    Github のアカウントに紐付ける https://github.com /account にアクセス SSH Public Key をクリック add another public key をクリック ~.ssh/id_rsa.pub の中身をコピペ 確認用コマンド $ ssh git@github.com
  • 16.
    Git に自分の情報を登録 変更を共有したときに共有する情報を登録します。ちゃんと登録しないとマシン名が出たりとか残念な感じになるかも… 他にも色々あるけどとりあえずこれでOK $ git config --global user.name &quot; 自分のユーザー名 &quot; $ git config --global user.email &quot; 自分のメールアドレス &quot;
  • 17.
    How to useGit (1) 作業用のディレクトリを作ってローカルに git レポジトリを作成する いつも通りファイルを作成する $ mkdir testproject $ cd testproject $ git init
  • 18.
    How to useGit (2) ローカルのレポジトリにファイルを追加する ローカルレポジトリに変更を適用する ローカルだけで管理するなら基本はこれだけ $ git add hoge.rb foo.rb README # git add <file> [<file>…] $ git commit –m’ first update’ # git commit –m’ コメント’
  • 19.
    How to pushリモートレポジトリをoriginという名前で登録 ローカルレポジトリのブランチ(master)をリモートレポジトリ(origin)にpush まぁアップするみたいなもの $ git remote add origin git@github.com: ユーザー名 / 作ったプロジェクト名 .git $ git push origin master
  • 20.
    Pull requestする人 folkしたプロジェクトページ内のPullrequestボタンを押す 適当にコメントを書く するとfolk元の人に通知メールが行きます
  • 21.
    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
  • 22.
    Tips:差分を確認する $ gitdiff diff --git a/readme.txt b/readme.txt index 277c8cc..5eed5b3 100644 --- a/readme.txt +++ b/readme.txt @@ -1 +1,2 @@ This is a readme file. +Nice to meet you.
  • 23.
    Tips:作業ログを確認する $ gitlog commit 6d97800229c8b9ed98f8153bc2e032aee0b06a66 Author: @pastak <pasta0915@gmail.com> Date: Tue Jul 20 18:22:09 2010 +0900 add key config. - j : go2next - k: go2prev commit 8fecdf65f35a351c1ebcebac758d9e8286e82463 Author: @pastak <pasta0915@gmail.com> Date: Tue Jul 20 18:18:26 2010 +0900 add check json path. if json file path is false, it will display prompt.
  • 24.
    まとめ Git を使えばファイルのバージョン管理を簡単にコマンドで行えるようになりますpull や merge などを使えば複数人での開発もスムーズにすることが出来ます 詳しくは僕がセプキャン 2009 で習ったときの資料や git のチートシート ( コマンドの一覧表 ) を見てください
  • 25.
    参考文献一覧 Github を Windows で使ってみる 2011 年版 | Numb. 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/