今回は完全に個人的なメモです。
WP Total HacksはGitHubでメンテナンスしてるのですが、公開リポジトリにしているため他の人がメンテしてくれたものをマージすることもあります。 Continue reading
今回は完全に個人的なメモです。
WP Total HacksはGitHubでメンテナンスしてるのですが、公開リポジトリにしているため他の人がメンテしてくれたものをマージすることもあります。 Continue reading
Gist.GitHub上のソースを超簡単にWordPress上に表示するプラグインを作りました。
http://firegoby.theta.ne.jp/wp/oembed-gist
このプラグインを使うとGistのURLをエディター上にコピペするだけで、以下のようにソースが表示されます。
今回はいよいよファイルを更新して、レポジトリに反映するところまでを行う。
ローカルやテストサーバーなどにファイルをダウンロードして、更新作業を行うには、Subversionでは、チェックアウトという操作を行い作業ディレクトリを作成する。
そして、Gitではこれとよく似た操作でcloneという操作を行う。
では、このcloneとsubversionのチェックアウトは何が違うのか?
両者の最も大きな違いは、cloneの結果得られたローカルの作業ディレクトリ内には、レポジトリの全ての修正履歴が含まれている点にある。
したがって、サーバーへのアクセスができないときでも、履歴が参照できたりする!これはエライ!
ターミナルでデスクトップ上等に任意のディレクトリを作成する。
mkdir ~/Desktop/WorkDir cd ~/Desctop/WorkDir
この後、cloneを行うためのコマンドを入力するのだが、そのためのリポジトリのパスをあらかじめ調べておく。
リポジトリのパスは、前回の記事で作成したforkの画面上に記載されている。
forkをしたリポジトリは、”Read+Write Access”となっていることに注目。
では、実際にこのパスをコマンドにコピペして使用する。
git clone git@github.com:user/path/to/repos.git
以上を実行すると、カレントディレクトリ内に作業ディレクトリが作成される。
作業ディレクトリ内に作成された、ファイルを修正したらリポジトリに修正内容を反映する。
それには、以下の操作を行う。
git add file.txt
file.txtというのが修正したファイル。
これに該当するコマンドは、Subversionにはない。
git commit -m “hogeをhugaした”
これは、コマンドのフォーマットは、Subversionとにているが、この時点ではサーバーのリポジ鳥に反映されていないことが、大きく違う。
なので、以下のコマンドを実行して、”なかった事にする”ことができる。これもエライ!
git reset --soft HEAD^
コミットした結果をリポジトリに反映するには、以下のコマンドを実行する。
git push
以上で修正した結果が、forkに反映される。
もし、forkに反映されたものをマスターに反映してもらいたいなら、メール等でマスターのオーナーにお願いすると、反映してもらえるかもしれない。
というわけで、gitについてはここまで。
ちなみに、Gitコマンドについては以下のサイトがわかりやすくまとまっていた。
Gitを使いこなすための20のコマンド – SourceForge.JP Magazine : オープンソースの話題満載
前の記事に続けて、GitHubについて。
タイトルでは、「MacOSで」とあるが、今回はOSはどれでも同じ。
GitHubとは、分散リポジトリのクラウドサービスで、簡単に言うとSubversionが高機能になったシステム(git)のWebサービスである。
では、gitとは何かと言うと、Linuxを開発したリーナス・トーバルズさんが開発したバージョン管理システムで、彼に言わせるとCVSやSubversionは最悪らしい。(笑)
何が最悪なのかは、私の技術レベルではよくわからないが、要はSubversionみたいなバージョン管理システムがGitで、そのレポジトリをオンラインで共有出来るようにしたサービスがGitHubだと考えるとわかりやすい。
今回は、WordPressの某テーマファイルを日本語化するに当たり、私以外の方がすでにGitHubでリポジトリを作成しており、そこでメンテナンスをしていた。(感謝!)
ところが、現在の最新バージョンのテーマファイルに対応していなかったので、それを引き継いで修正したいと考えた。
既存のリポジトリを引き継ぐには、Forkという機能を使用する。
これは、Subversionで言うところのブランチと似ているが、もとのリポジトリにアクセス権が無くても出来ることとか、あとでメインのリポジトリ(マスターと呼ぶ)にマージすることもできる(これはマスターにアクセス権が必要)など、ややブランチとはニュアンスが違う。
引き継ぎたいリポジトリの画面を開いて(例えばこれ)、右上にある「Fork」をクリックする。
これだけの操作で、既存のリポジトリのForkが完了して、コミットができるようになる。
もちろん、Forkしたものは削除もできる。
削除するには、さきほどのForkボタンの左側にある「Admin」ボタンをクリックして、「Delete this repository」をクリックする。
Subversionでブランチを作る手間を考えると、ここまでは簡単。
というわけで、今回はここまで。
今日、GitHubというサービスを始めて使った。
Githubとは、分散リポジトリのクラウドサービスで、まあ、簡単に言うとオープンなSubversionって感じ?
ちょうど「株式会社はてなの開発戦略」というプレゼンテーションで紹介されていたので、以下のとおりご紹介。
GitHubには0.3GBまで保存できる無料アカウントが用意されており、他にもディスク容量等によって、いくつかのプランがある。(フリーミアムなのだ!)
無料アカウントを作成するには、以下のページで登録する。
ここまでの作業でとりあえずログインはできるようになるが、以下のページでURLや名前などの公開情報や、ファイルをコミットするための公開鍵を設定できる。
公開鍵は後述するので、とりあえず、それ以外の情報を登録しておく。
ちなみに、このページで「Email」を登録すると公開されてしまうので要注意!
以降はMacOSXのターミナルでの作業が中心。
まず、ターミナルで以下のコマンドを入力して公開鍵を作成する。
パスフレーズの入力を求められるので、任意のパスフレーズを入力するか、パスフレーズが不要な場合は、そのままEnter。
ssh-keygen
上記のコマンドを入力すると、.sshというディレクトリが作成され、その中にid_rsaというファイル名の秘密鍵と、id_rsa.pubというファイル名の公開鍵が作成される。
この公開鍵をGitHubに登録するには、以下のコマンドを実行して出力された文字列をコピペして、「SSH Public Keys」のページで登録する。
cat .ssh/id_rsa.pub
GitHubは分散リポジトリのウェブサービスなので、ファイルをコミットしたりチェックアウトするためのコマンドが用意されている。
MacOSXでは、MacPortsで提供されているのでそれを利用してインストールする。
MacPortsがまだインストールされていない場合はこの記事をご参照。
sudo port install git-core +gitweb +svn
とっても優しい github の使い方 – ¬¬日常日記 によると、以下のコマンドも実行しておいたほうがいいらしい。
git config --global user.name "Your Name" git config --global user.email you@example.com
以上、とりあえず、今回はここまで。