More Related Content
More from Shuhei Iitsuka (20)
Git
- 2. UT Startup Gym とは?
アイデアをカタチにするプログラム
プロジェクト
企画から実装まで
スタートアップ
2013/2/13 2 UT Startup Gym
- 3. スケジュール
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, 13
2013/2/13 3 UT Startup Gym
- 4. 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
- 5. 動くかわからないコードを書くとき
function hoge (val) {
/*
work codes; 不安なので、動いていた
*/ ときのコードをコメント
アウトして書きます。
challenging codes;
}
こんな部分がたくさん出てきたら?
この間に他の部分も直さなければ
ならなくなったら?
2013/2/13 5 UT Startup Gym
- 6. コードのバックアップをするとき
zip で固めてます。
どの変更がどのファイルになされたか
覚えてられるか?ファイルの管理が煩雑
にならないか?
2013/2/13 6 UT Startup Gym
- 7. コードを共有するとき
USB メモリとか DropBox
で共有してます
自分の不完全なコードも共有される
可能性は?逆に他人のコードに邪魔
される可能性は?コンフリクトは?
2013/2/13 7 UT Startup Gym
- 8. そんなイケてない
ファイル管理とは
おさらばしよう!
2013/2/13 8 UT Startup Gym
- 9. バージョン管理ってなに?
=変更履歴を管理するためのシステム。
「誰が」「いつ」「ど
こを」修正したか
Mac OSX: Document Revisions
Google Drive: Revision History
2013/2/13 9 UT Startup Gym
- 10. SCENARIO 1/3
• あなたは小説を執筆している
• いつも Word で書いていたが、できれば変更履
歴が残るようにして、色々な表現を試してみた
い
• 作家仲間が Git を使っていることを知り、自分
も使って見ることにした
2013/2/13 10 UT Startup Gym
- 11. つくりはじめる
$ 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
- 12. (補足)初回の設定
$ 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
- 14. コミットをつくる
$ 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 commit
2013/2/13 14 UT Startup Gym
- 17. コミット
インデックス
add (ステージング)
ワーキングツリー
作業ディレクトリ
2013/2/13 17 UT Startup Gym
- 18. コミット
commit
インデックス
ワーキングツリー
作業ディレクトリ
2013/2/13 18 UT Startup Gym
- 19. 基本動作のつづき
$ git log # ログを見る
commit d090f5935f7ae281790acd0f4f1db98d8da32d61
Author: Shuhei Iitsuka <tushuhei@gmail.com> コミットID
Date: 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
- 20. 前の状態に戻す
$ git log --oneline
d6fd8cb add new line
d090f59 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
- 21. git reset
• 特定のコミットに遡る
– hard オプションをつけると、今のワーキングツリー
にある変更を完全に破棄するので注意
– (つけないと、さかのぼったファイルをワーキング
ツリーに追加する(実際に挙動を見てみてくださ
い))
参考 http://d.hatena.ne.jp/murank/20110327/1301224770
2013/2/13 21 UT Startup Gym
- 24. レポジトリの構成
EC2
作業ディレクトリを持た
ベアレポジトリ ないレポジトリ。
push push
pull pull
ローカルレポジトリ ローカルレポジトリ
あなたの書斎 出版社
2013/2/13 24 UT Startup Gym
- 26. ローカルレポジトリの作成
you@home ~$ git clone
ssh://ubuntu@ec2.com/home/ubuntu/mynovel.git
you@home ~$ cd mynovel
you@home mynovel$ ls –a
いろいろなファイル .git これがローカルレポジトリ。ここから
はシナリオ1と同じ。
you@home mynovel$ vim overture.txt
you@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 master
2013/2/13 26 UT Startup Gym
- 27. origin master
• origin => ec2.com 上のベアレポジトリのこと
– .git/config をみると確認できる
• master => master ブランチ
– master? ブランチ??
git にはブランチという機構があり、コミットツリー
を分岐することができる。
デフォルトのブランチの名前が master
2013/2/13 27 UT Startup Gym
- 31. レポジトリとサーバの構成
pull (master) 公開中の
ウェブサーバ
ベアレポジトリ ローカルレポジトリ
push (master, staging)
pull (master, staging)
ローカルレポジトリ ローカルレポジトリ
あなたの書斎 出版社
2013/2/13 31 UT Startup Gym
- 32. ブランチ@家
you@home mynovel$ git branch staging # staging ブランチの作成
you@home mynovel$ git branch # ブランチの確認
* master
staging
you@home mynovel$ git checkout staging # staging ブランチに切り替
え
you@home mynovel$ git branch
you@home mynovel$ vim overture.txt
you@home mynovel$ git add .
you@home mynovel$ git commit –m “modify overture”
you@home mynovel$ git pull origin staging
you@home mynovel$ git push origin staging
2013/2/13 32 UT Startup Gym
- 33. ブランチ@オフィス
editor@office mynovel$ git fetch –-all # ブランチ情報の更新
editor@office mynovel$ git branch –av # リモートブランチも含めて一
覧表示。編集長「お、staging というブランチを切ったのか」
editor@office mynovel$ git checkout staging
editor@office mynovel$ vim overture.txt
editor@office mynovel$ git add .
editor@office mynovel$ git commit –m “fix typo”
editor@office mynovel$ git pull origin staging
editor@office mynovel$ git push origin staging
2013/2/13 33 UT Startup Gym
- 34. ブランチ@リリース日
you@home mynovel$ git checkout master
you@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
- 35. ブランチ構成の例
• master
– 最終版、公開してOKなコードだけが乗る
• staging
– テスト段階のコードが乗る
• dev
– 開発中のコードが乗る
• topic_*
– あるバグに取り組んでいる人、チームのみで共有す
るブランチ
2013/2/13 35 UT Startup Gym