• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Git
 

Git

on

  • 976 views

 

Statistics

Views

Total Views
976
Views on SlideShare
860
Embed Views
116

Actions

Likes
1
Downloads
1
Comments
0

3 Embeds 116

http://kawakami.ut-gym.jp 75
http://ut-gym.jp 39
http://utgym.localhost 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Git Git Presentation Transcript

    • チームで開発するために - Git の使い方 -2013/2/13 1 UT Startup Gym
    • UT Startup Gym とは? アイデアをカタチにするプログラム プロジェクト 企画から実装まで スタートアップ2013/2/13 2 UT Startup Gym
    • スケジュール Keywords: • プログラミング入門 ソーシャルウェブアプリケーション, API, Oct, 12 bot, HTML5 • プラニング リーンスタートアップ, ビジネスプラニン Nov, 12 • プロジェクトスタート グ, HTML, CSS, PHP, javascript • 開発開始 Dec, 12 • 冬季開発合宿 チーム結成, 企画, ディスカッション git, フレームワーク, MySQL, Apache • ウェブデザイン Jan, 13 • 週間報告会 シナリオ, ペルソナ, ワイヤフレーム, サイトマップ, DB スキーム • jQuery, 中間発表 Feb, 13 ゲーミフィケーション, 仮説検証, データマ イニング, アクセシビリティ • 作業会 Mar, 13 レスポンシブデザイン, プレゼンテーショ • リリース会 ン Apr, 132013/2/13 3 UT Startup Gym
    • M D 講師(敬称略) タイトル 要素10 13 飯塚 かんたん Facebook アプリをつくる HTML, CSS, js 21 飯塚 かんたん Twitter アプリをつくる UNIX, vim, PHP 27 川上 かんたん アンケートフォームをつくる MySQL, MVC 11 4 AWS 高山様 サーバを立てよう AWS 10 飯塚・石村 スタートアップの心構え ビジネスプラン、リーンスタートアップ 17 飯塚・佐藤 プロダクトデザイン シナリオ、ペルソナ、ワイヤフレーム 24 お休み(飯塚@ジャカルタ)12 1 ゆーすけべー様 ウェブサービスの企画のコツ 企画プロセス、ウェブサービス運用 8 飯塚 ウェブから情報をあつめる クローラ, XPath, 正規表現 15 プロジェクトキックオフ アンカンファレンス 22 飯塚 チームで協力して開発するために 1 12 未定 19 石村 ゲーミフィケーション 26 松尾、川上 中間発表 2 2 未定 9 ぱろすけさん AV顔画像認識とその周辺 画像認識、機械学習 16 飯塚 レスポンシブデザイン Less. Twitter Bootstrap 3 作業会 4 13 プレゼンテーション 20 リリース会2013/2/13 4 UT Startup Gym
    • 動くかわからないコードを書くときfunction hoge (val) {/*work codes; 不安なので、動いていた*/ ときのコードをコメント アウトして書きます。challenging codes;} こんな部分がたくさん出てきたら? この間に他の部分も直さなければ ならなくなったら?2013/2/13 5 UT Startup Gym
    • コードのバックアップをするとき zip で固めてます。 どの変更がどのファイルになされたか 覚えてられるか?ファイルの管理が煩雑 にならないか?2013/2/13 6 UT Startup Gym
    • コードを共有するとき USB メモリとか DropBox で共有してます 自分の不完全なコードも共有される 可能性は?逆に他人のコードに邪魔 される可能性は?コンフリクトは?2013/2/13 7 UT Startup Gym
    • そんなイケてない ファイル管理とは おさらばしよう!2013/2/13 8 UT Startup Gym
    • バージョン管理ってなに? =変更履歴を管理するためのシステム。 「誰が」「いつ」「ど こを」修正したか Mac OSX: Document RevisionsGoogle Drive: Revision History 2013/2/13 9 UT Startup Gym
    • SCENARIO 1/3• あなたは小説を執筆している• いつも Word で書いていたが、できれば変更履 歴が残るようにして、色々な表現を試してみた い• 作家仲間が Git を使っていることを知り、自分 も使って見ることにした2013/2/13 10 UT Startup Gym
    • つくりはじめる$ mkdir mynovel # 小説ディレクトリの作成$ cd mynovel$ vim overture.txt # ファイルをつくって保存$ git init # レポジトリの作成Initialized empty Git repository in...$ ls –a. .. .git overure.txt# この .git がレポジトリである。2013/2/13 11 UT Startup Gym
    • (補足)初回の設定$ git config --global user.name = “Shuhei Iitsuka” # 名前の設定$ git config --global user.email = “hoge@example.com” #メールアドレスの設定$ git config --global color.ui true #色分け2013/2/13 12 UT Startup Gym
    • レポジトリとは• ファイルの変更履歴を格納している場所• スナップショット(コミット)を格納している – 内部的には差分のみを保存することで、軽量化 commit: ca1aj commit: dc3f9 commit: a924s commit: e3kvf t2013/2/13 13 UT Startup Gym
    • コミットをつくる$ git status # 状況確認# Untracked files:...# oveture.txt$ git add overture.txt$ git status# Changes to be committed:# new file: overture.txt$ git commit -m “first set”$ git status# nothing to commit2013/2/13 14 UT Startup Gym
    • コミット インデックスワーキングツリー作業ディレクトリ 2013/2/13 15 UT Startup Gym
    • コミット インデックスワーキングツリー modify作業ディレクトリ 2013/2/13 16 UT Startup Gym
    • コミット インデックス add (ステージング)ワーキングツリー作業ディレクトリ 2013/2/13 17 UT Startup Gym
    • コミット commit インデックスワーキングツリー作業ディレクトリ 2013/2/13 18 UT Startup Gym
    • 基本動作のつづき$ git log # ログを見るcommit d090f5935f7ae281790acd0f4f1db98d8da32d61Author: Shuhei Iitsuka <tushuhei@gmail.com> コミットIDDate: Fri Dec 21 07:14:40 2012 +0900 first set$ vim overture.txt # 再度編集$ git diff # 最新コミットとの差分を表示する+ぴよ$ git add . # 変更されたファイルすべてをステージング$ git commit –m “add new line”2013/2/13 19 UT Startup Gym
    • 前の状態に戻す$ git log --onelined6fd8cb add new lined090f59 first set$ git reset --hard d090f59 # コミットd090f59に戻す$ git reset --hard d6fd8cb # やっぱりd6fd8cbに戻す$ vim chapter1.txt$ git add .$ git commit –m “add chapter1”[master b6101ea] add chaper1# やっぱり overture だけ戻したい!$ git checkout d090f59 overture.txt$ git status# changes to be committed: modified: overture.txt$ git commit –m “roll back overture.txt”2013/2/13 20 UT Startup Gym
    • git reset• 特定のコミットに遡る – hard オプションをつけると、今のワーキングツリー にある変更を完全に破棄するので注意 – (つけないと、さかのぼったファイルをワーキング ツリーに追加する(実際に挙動を見てみてくださ い))参考 http://d.hatena.ne.jp/murank/20110327/13012247702013/2/13 21 UT Startup Gym
    • git checkout• 今回は特定のファイルのみを任意のコミットの 状態に復元するのに使った – そして、また新しくコミットをつくる• ブランチの説明でまた出てきます。• めちゃ奥が深いコマンドのひとつ。2013/2/13 22 UT Startup Gym
    • SCENARIO 2/3• ある日出版社の編集長とファイルを共有し、共 同で編集していくことになった• お互いにいつ・どこを編集したのか、確認しな がら進めたい。2013/2/13 23 UT Startup Gym
    • レポジトリの構成 EC2 作業ディレクトリを持た ベアレポジトリ ないレポジトリ。 push push pull pull ローカルレポジトリ ローカルレポジトリ あなたの書斎 出版社2013/2/13 24 UT Startup Gym
    • ベアレポジトリの作成ubuntu@ec2.com ~$ lsmynovelubuntu@ec2.com ~$ git clone --bare mynovelCloning into bare repository mynovel.git... done.ubnutu@ec2.com ~$ lsmynovel mynovel.git これがベアレポジトリhttp://tushuhei.com/git-test.pem2013/2/13 25 UT Startup Gym
    • ローカルレポジトリの作成you@home ~$ git clonessh://ubuntu@ec2.com/home/ubuntu/mynovel.gityou@home ~$ cd mynovelyou@home mynovel$ ls –aいろいろなファイル .git これがローカルレポジトリ。ここからはシナリオ1と同じ。you@home mynovel$ vim overture.txtyou@home mynovel$ git add .you@home mynovel$ git commit –m “fix typos in overture”you@home mynovel$ git pull origin master # push するまえに pull すること。他の人が変更を加えているかもしれない。you@home mynovel$ git push origin master2013/2/13 26 UT Startup Gym
    • origin master• origin => ec2.com 上のベアレポジトリのこと – .git/config をみると確認できる• master => master ブランチ – master? ブランチ?? git にはブランチという機構があり、コミットツリー を分岐することができる。 デフォルトのブランチの名前が master2013/2/13 27 UT Startup Gym
    • 【ワーク】コンフリクト• みんなで overture.txt を編集して push しましょ う。• CONFLICT という文字が出た人は手を挙げて教 えてください。2013/2/13 28 UT Startup Gym
    • 【ワーク】犯人探しyou@home ~$ git blame overture.txt# 「うんち」という文字列を埋め込んだ犯人を探してください。2013/2/13 29 UT Startup Gym
    • SCENARIO 3/3• いままで書いた小説を連載としてウェブ上で公 開することになった。• 編集を終えたバージョンを公開する一方、裏で 編集長と協力してアップデートを続けたい。• しかし、編集中のものを公開するわけにはいか ない。2013/2/13 30 UT Startup Gym
    • レポジトリとサーバの構成 pull (master) 公開中の ウェブサーバ ベアレポジトリ ローカルレポジトリ push (master, staging) pull (master, staging) ローカルレポジトリ ローカルレポジトリ あなたの書斎 出版社2013/2/13 31 UT Startup Gym
    • ブランチ@家you@home mynovel$ git branch staging # staging ブランチの作成you@home mynovel$ git branch # ブランチの確認* master stagingyou@home mynovel$ git checkout staging # staging ブランチに切り替えyou@home mynovel$ git branchyou@home mynovel$ vim overture.txtyou@home mynovel$ git add .you@home mynovel$ git commit –m “modify overture”you@home mynovel$ git pull origin stagingyou@home mynovel$ git push origin staging2013/2/13 32 UT Startup Gym
    • ブランチ@オフィスeditor@office mynovel$ git fetch –-all # ブランチ情報の更新editor@office mynovel$ git branch –av # リモートブランチも含めて一覧表示。編集長「お、staging というブランチを切ったのか」editor@office mynovel$ git checkout stagingeditor@office mynovel$ vim overture.txteditor@office mynovel$ git add .editor@office mynovel$ git commit –m “fix typo”editor@office mynovel$ git pull origin stagingeditor@office mynovel$ git push origin staging2013/2/13 33 UT Startup Gym
    • ブランチ@リリース日you@home mynovel$ git checkout masteryou@home mynovel$ git merge staging # master に staging での一連の変更が追加される。master が最新状態になる。you@home mynovel$ git push origin master...ubuntu@webserver public/mynovel$ git pull origin master #リリース!! master にマージ。 master master には最終版だけが乗る。 staging ←ここで最終確認2013/2/13 34 UT Startup Gym
    • ブランチ構成の例• master – 最終版、公開してOKなコードだけが乗る• staging – テスト段階のコードが乗る• dev – 開発中のコードが乗る• topic_* – あるバグに取り組んでいる人、チームのみで共有す るブランチ2013/2/13 35 UT Startup Gym
    • これからやるといいこと• とりあえず、明日から何かひとつのディレクト リに Git レポジトリを導入してみましょう。 – Excel や 画像などのバイナリファイルではなく、txt やプログラムなどのテキストファイルを管理する ディレクトリで• GitHub を使ってみる2013/2/13 36 UT Startup Gym