Gitの最近のブログ記事

Github上に既に作成済みのレポジトリ(他人のレポジトリでもよい)があるとします。
これをheroku上にデプロイする方法を紹介します。
やってみたらめちゃ簡単でした。

(herokuの登録、herokuコマンドのインストールについては省略します)

手元のマシンで次のようにします。

  1. herokuコマンドでアプリケーション作成
  2. gitコマンドで、Githubのレポジトリをclone
  3. gitコマンドで、herokuにpush
手順はたったこれだけ。
1と2は順番が逆でも大丈夫です。

それでは、レッツ・ビギン!

手順1:herokuコマンドでアプリケーション作成

以下、プロジェクト名"foo"とします。
$ heroku create --stack cedar  foo
Creating foo... done, stack is cedar
http://foo.herokuapp.com/ | git@heroku.com:foo.git
"--stack cedar"が何なのかは聞かないでください。(´・ω・`)
「なんとかレビオーサ!」みたいなやつです。
つまり、呪文です。(注1)

ブラウザで http://foo.herokuapp.com/ を見て、"Welcome to your new app!"ページが表示されることを確認します。

(注1:"--stack cedar"について、herokuの中の人からご指摘をいただきました。詳しくはページ下部のコメントをご覧ください。)

手順2:Githubのレポジトリをclone

$ git clone git@github.com:DQNEO/foo.git
$ cd foo/

手順3:gitコマンドで、herokuにpush

$ git remote add heroku git@heroku.com:foo.git
$ git push heroku master
ここで、"heroku"というのは単なるラベルなので他の名前でもかまいません。

git remote add の解説はこちら ↓
Git超入門:"git push origin master"の"push"と"origin"と"master"の意味がわからないあなたへ

手順は以上です。

確認

さあ、http://foo.herokuapp.com/ にアクセスして、アプリケーションが動いたらお見事成功です!

(実際にはこまごまとしたアプリ固有の初期設定が必要だったりします)
うまいきましたか?

ウィンガーディアム・レビオーサ!
本日、herokuデビューしました。

さっそく git push したらこんなエラーが出ました。
$ git push heroku master

-----> Heroku receiving push
 !     Heroku push rejected, no Cedar-supported app detected

To git@heroku.com:yukiwikiminionethna.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:yukiwikiminionethna.git'
これは、プロジェクトルートにindex.phpがないのが原因のようです。

index.phpを置いたら解決しました。
ファイルの中身はなんでもよいみたいです。
$ echo "hello" > index.php
$ git add index.php
$ git commit -m "add index.php"
$ git push heroku master
成功!!
svn exportと同じことをgitでやるには、下記のようにします。
$ mkdir /tmp/foo
$ git archive (mybranch) | tar -x -C /tmp/foo
必ず/tmp/foo という空のディレクトリを作ってからやりましょう。

間違えて下記のようにしてしまうと、プロジェクトの中身が/tmp/直下にぶちまけられてしまいます。
$ git archive (mybranch) | tar -x -C /tmp  # これはやっちゃダメ!
私はこれで泣きました。
参考
Git で svn export と同等のことを行う

Git/Github超入門:猿でもできるPull Request

| カテゴリ:
(※猿でもできるというのは一種の比喩であり、本当に猿にやらせてできなかった場合の責任は負いかねます。)

Git/Github初心者のみなさんこんにちわ!

Pull Requestを送ってみたいけど、やり方がわからない?
間違ったPull Requesするのがこわくて躊躇している?

もったいない!
そんなみなさんに、Pull Requestを送るための最小の手順をご紹介します。

昨日ちょうどEthnaにPull Requestを1件送ったので、これを題材にして説明します。

以下、Githubのアカウント取得、gitのインストール、SSH鍵の設定は終わっているものとして解説をすすめます。

Pull Requesを送る最小手順

1.ブラウザで本家プロジェクト画面を開きます。 例:https://github.com/ethna/ethna
2.forkボタンを押します。
3.以下、自分のPCで作業
git clone git@github.com:DQNEO/ethna.git
cd ethna
git checkout -b feature/hoge develop # developブランチ(注1)を元に"feature/hoge"ブランチを作成し、そこに入る
# エディタでソースコードを編集
git add .
git commit -m "bugfix: fixed hoge" # ローカルにコミット
git push origin feature/hoge  # githubサーバに送信
以上でPCの作業は終了。

4.ブラウザで、自分のプロジェクト画面を開きます。例:https://github.com/DQNEO/ethna
5.画面右上の"Pull Request"を押します。
6.プルリクエストの範囲指定が求められます。
  画面左側に、Pull Request受け手となる本家のブランチ名を、画面右側に、さっき作った自分のブランチ名を設定します。
  この場合、左側を"ethna/ethna@develop"に、右側を"DQNEO/ethna@feature/hoge" に設定します。
7."Update Commit Range"を押します。
8.コミット範囲を確認して、OKなら"Send Pull Request"を押します。

注1
Ethnaでは、
「pull requestはmasterにではなくdevelopブランチに送ること」
というルールになっています。
これはつまり、「本家のdevelopブランチを、あなたの側で派生させてそこで改修し、本家のdevelopに還元してほしい」ということです。

Pull Requestがマージされたら

おめでとうございます!
あなたのコードが本家に取り込まれました。

実はここからが問題なのです。
本家の方は今後どんどん開発が進んでいくわけですが、
あなたのPC上のレポジトリと、Github上にある(forkした)あなたのレポジトリは、古いままなのです。

これらを本家に追従させる必要があるのですが、これが意外と難しいのです。
(pullとかfetchとかremoteとかupstreamとかrebaseとかいろいろ勉強しないといけない)

そこで私からのアドバイス。

あなたのPC上のレポジトリと、Github上のあなたのレポジトリを、思い切って削除してしまいましょう。
何もがんばって追従するは必要ありません。
がんばって追従しようとすると、たぶん挫折するでしょう。(私は一度挫折しました。)

Pull Requestの本質は、「パッチを送る」「貢献する」ことです。
だから用が終わったらレポジトリごと削除してしまってもよいのです。

次のPull Requestを送りたくなったら、またこの記事の手順1からやればよいのですから。

一番大事なこと

あえて言います。
大事なのは、「間違ってもいい」ということ。

「失敗しちゃいけない」とか「こういうのは絶対やってはいけない」とか、そういう風に考える必要はありません。
間違えて送ったプルリクエストは、たぶん承認されないでしょう。それだけのことです。
「すいません、やり直します」と言ってやり直せばいいのです。

おまけ

この記事を読んでくれたひとのために、Pull Request練習用レポジトリを作りました。

https://github.com/DQNEO/Renshu

forkするなり、Pull Requestを送るなり、お気軽に試してみてください。


「世の中知らないことがあってもへっちゃらさ」
Larry Wall-プログラミングPerl より

Enjoy !

Gitをソースからコンパイルしてインストールする

wget http://git-core.googlecode.com/files/git-1.7.7.1.tar.gz
tar xvfz git-1.7.7.1.tar.gz
cd git-1.7.7.1
./configure
make
sudo make install
これだけです。

ドキュメント(help)をインストール

sudo yum -y install xmlto  asciidoc
make doc
sudo make install-doc

わらわらエラーが出ますが、一応使えるようになります。

はじめに

Gitって難しくないですか?

GitやGithubの入門記事では、必ずこういうコマンドが登場します。

$ git remote add origin git@github.com:DQNEO/sample.git
$ git push -u origin master

Gitで、ブランチを作成する方法

| カテゴリ:

新規ブランチを作成する

ローカルのhogeブランチを元に新規ローカルブランチを作る
$ git branch (newbranch) hoge
リモートのorigin/hogeブランチを元に新規ローカルブランチを作る
$ git branch (newbranch) origin/hoge 
リモートにあるブランチの一覧を見る
git branch -r

リモートブランチhogeを削除する方法

リモートにあるブランチの一覧を表示
$ git branch -r
  origin/HEAD -> origin/master
  origin/hoge
  origin/fuga
リモートブランチhogeを削除
$ git push origin :hoge
Subversionを長らく使ってきた人がGitを使ってみると、ブランチの概念が全然違うことに面喰います。
最大の違いは、「ブランチ=ディレクトリであるかどうか」です。

人気記事

このアーカイブについて

このページには、過去に書かれたブログ記事のうちGitカテゴリに属しているものが含まれています。

前のカテゴリはCentOSです。

次のカテゴリはJScriptです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近の人気記事