ひよこの外部記憶

めもおきば

GitHubにRalisアプリをpush〜branch切り替えとともに〜

なんかフランス料理みたいなタイトルになった

参考サイト:remote に branch を push し、remote から clone したリポジトリの branch を変更して push する - basyura's blog

branch切り替え

現在あるbranchを調べるには

git branch

を使用する(引数に-aを指定するとRemoteも見える)

branch1作って移動
git checkout -b subbranch

今居るbranch(表現あってるかな?)が既にsubbranchになってるのでaddとかcommitすればそのbranchに反映される

git push origin subbranch

Githubにも反映される。


(originってのが何か分かってないな・・・後で調べよう)

Webを支える技術 第一部(1〜3章)

Webを支える技術isbn:4774142042

読んだ感想、大事だと思ったところ、疑問点を忘れないように書いていく
コンピュータにとって最も重要なソフトウェアはブラウザである。

第1章 Webとは何か

WEBの用途3つ

1.Webサイト

まぁこれは良いか

2.ユーザインタフェースとしてのWeb

最近のブラウザで〜を作ってみたとかAndroidをリモコンにしてる等のイメージ

3.プログラム用APIとしてのWeb

Googleの検索とかみたいなイメージかな?URLで決められた書き方で書くと望むもの返してくれるみたいな?

⇒これらを支える技術がHTTP,URI,HTML

ハイパーメディアとしてのWeb
情報が単方向に繋がる
分散システムとしてのWeb
HTTPというシンプルなプロトコルで縛る事で不特定多数の繋がりが容易

第3章 REST

RESTとはアーキテクチャスタイル(作法)であり、実際のアーキテクチャより抽象度の高い概念

RESTは以下の組み合わせ

+1.クラサバ

クライアントはサーバにリクエストを送り、サーバはクライアントにレスポンスを返す

2.ステートレス

アプリケーションの状態をサーバで管理しない(アプリケーションは毎回自分の状態ごとサーバに伝える)

3.キャッシュ

一度利用したリソースを再利用する

4.統一インターフェース

HTTPによる通信のみ行う

5.階層化

システムをいくつかの階層に分類出来る(例えばLB、proxy)

6.コードオンデマンド

コードをサーバーからダウンロードしてクライアントで実行する(jsとかFlashとか)

RailsアプリをGithubにPush

GithubコマンドラインからPushする方法、個人的にはEgitより簡単な気がする(盛大にハマったからなぁ・・・)

鍵の話はめんどいからしないよ。


環境
Windows Vista(笑)
Ruby 1.9.3 p125
Rails 3.2.2
Git 1.7.8

GithubでPush先リポジトリ作成

Githubのページ https://github.com/
でNew RepositoryしてPush先のリポジトリ作成(今回はhogeとする)

RailsアプリをGitで管理

まずはPushしたいアプリをGitで管理出来るようにする

リポジトリ.git作成
C:\rails\hogehoge>git init

変更ファイル追加(変更があったファイル全て)
C:\rails\hogehoge>git add .

コミット
C:\rails\hogehoge>git commit -m "first commit"


これでRailsアプリがGitリポジトリに入った。

GithubにPush

GitHub情報を入力(リポジトリ作成したばかりのページの最初の2行)
/情報はconfigファイルに入る

>git config --global user.name "USERNAME"
>git config --global user.email "ADDRESS"
Githubのリポジトリからファイル追加(でいいのかな?)
>git remote add origin git@github.com:USER/hoge.git

masterをoriginにpushしてるはずなのだがどうも逆の気がするな
>git push origin master

取りあえずこれでPush出来るはず!

Rubyの記法

Railsと同様Rubyやるのも必要だよね

条件分岐

リアルなif-then(リアルとは何なのか)

if num % 2 == 0 then puts "even num"

後置のif(Rubyistたちはこっちを使うらしい)

puts "even num" if num % 2

繰り返し

結構慣れないが、記法が違うだけで使い方はPythonに近いかも

10.times do |i|
  print i, ", "
end

10.times { |i|
  print i, ", "
}

は同じ結果を与える
[結果]
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

可変長引数

Pythonと大体一緒っぽい

def put_messages(*messages)
  messages.each{|m| puts m}
end

put_messages [1,2] , (put_messages "こんにちは", "さようなら")

ちなみに上の結果は
1.引数内のput_messagesが評価されて"こんにちは"、”さようなら”が出力される
2.put_messages [1,2] , "こんにちは", "さようなら"が実行される

ので
[結果]
こんにちは
さようなら
1
2
こんにちは
さようなら

説明が抽象的なのは分かってないからですね。

Gitコマンド

明らかにGitの理解が足りない、Egitばかり使っていた代償です。
取りあえずGitについて理解したいという事でまとめ

分散リポジトリ

  • 自分の関係ないコードもバージョン管理出来る
  • Gitのバージョン管理がハッシュ値によって行われるのはコミット番号つけてると衝突する可能性があるため
  • オープンソース等で自分だけの変更をリポジトリに加えられる

git コマンド

C:\hoge>git init

hogeリポジトリを作成する(指定しなければ".git"フォルダが作成される)

C:\hoge>git clone <複製したいリポジトリのURL>

hogeリポジトリが複製される。

C:\hoge>git clone <複製したいリポジトリのURL>
git add .
git commit

変更ファイル見つけてくる(git commitのみだと作成されたファイルは無視される)

git commit -a -m "<コミットメッセージ>"
  • aで変更があったファイルを自動検出してコミットしてくれる
git push <送信先リポジトリ> <送信するブランチ>:<送信先ブランチ>

Rails serverがCtrl+Cでシャットダウン出来ない時

環境
Windows7
ruby 1.9.3p125 (2012-02-16) [i386-mingw32]
Rails 3.2.2

Ctrl+Cでサーバが止められなかった

取りあえずではあるが

Ctrl + PAUSE/BREAK

>Y

でサーバをシャットダウン出来た。