GitHubでRailsアプリを管理してみる

環境

Mac OSX 10.6
Ruby 1.8.7

前提

gitインストール済み
githubへpushできる設定がされている


目的

ターミナルからgithubプロジェクトを新規作成し、Railsアプリを管理する

githubコマンド

GitHubにターミナルからプロジェクトを作るためにgemをインストールします

gem install defunkt-github -s http://gems.github.com
新しいリポジトリの作成
$ github create [repository-name]

カレントディレクトリ以下に[repository-name]ディレクトリができます
その配下にgitリポジトリができ、githubにも登録される

既存のgitリポジトリからの作成
$ cd [repository-name]
$ github create-from-local

[repository-name]でgithubに登録されます
今回はこちらを使って進めます

Railsアプリの作成

次回以降でCucumberを試したいのでそのためのプロジェクトを作成します

$ rails cuke_test
$ cd cuke_test

いろいろ作成されたかと思います。

gitリポジトリの作成

gitリポジトリを作成してrailsのファイル群を全てコミットします
その後1stというブランチを作成してチェックアウト

$ git init
$ git add .
$ git commit -m "initial"
$ git checkout -b 1st

githubにプロジェクトを作成する

ひとまずここでgithubリポジトリを登録してしまいます

$ github create-from-local

確認する

ブラウザでgithubのプロジェクトページが表示されればOKです

$ github home

ファイルの無効化

.gitignoreファイルに記述することでコミットの対象外にすることができる

logファイル
$ rm -rf log/*.log
$ vi log/.gitignore
*.log

と記述

tmpディレクトリ以下

tmpディレクトリ以下のファイルをコミットしないように修正

$ vi tmp/.gitignore
*
!.gitignore

と記述

database.yml

database.ymlを退避させた後コミットしないように修正

$ cp config/database.yml config/database.example.yml
$ vi config/.gitignore
database.yml

と記述

sqlite3ファイル

sqlite3にてプロジェクトの作成を行ったためデータベースファイルのコミットをしないようにする

$ vi db/.gitignore
*.sqlite3

と記述

コミット

まずはステージに

$ git add .

コミットの前に確認

$ git status


# git status 
# On branch 1st
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
# new file:   config/.gitignore
# new file:   config/database.example.yml
# new file:   db/.gitignore
# new file:   log/.gitignore
# new file:   tmp/.gitignore
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted:    log/development.log
# deleted:    log/production.log
# deleted:    log/server.log
# deleted:    log/test.log
#

diffを確認しつつコミット

$ git commit -v

masterにマージ

1stブランチで作業を行ったのでmasterにマージをしましょう

$ git checkout master
$ git merge 1st

githubにプッシュ

$ git push origin

これにて一段落。

参考

Route 477(2009-09-03)
Railsアプリをgitで管理するときのやり方
すごく参考になりました!ありがとうございました。