GitHubがMS社に買収されました。 手元のgit管理ディレクトリをGitHubに預けていたので、 その全部を江戸越君に預けることにしました。

リポジトリの用語に関してはWebから説明を引用しましょう。

リポジトリ (英: repository) とは、情報工学において、 仕様・デザイン・ソースコード・テスト情報・インシデント情報など、 システムの開発プロジェクトに関連するデータの一元的な貯蔵庫を意味する。

未来はわからないから

経営母体が変わったことで、いきなり追い出されることもないでしょうが、 未来は予測不能なものです。

そして明らかに個人的なソースを預かって戴いている状況なので、 ここは自己責任の面から反省しなければいけません。 自前でマスターを管理しようと思ったのです。

さくらのレンタルサーバーである江戸越君には、gitコマンドが用意されてあったので、 素直にリモート・リポジトリとして使うことにしました。 確かにGitHubや他の管理サーバーソフトより愛想はないですが、 費用を払っている間は安心できます。

江戸越君でやったこと

江戸越君に~/edogoe.gitとかのプロジェクト毎のディレクトリを作って、初期化
git --bare init --sharedします。 ここがマスターのリポジトリになります。

手元のPCでやったこと

ssh通信の信頼関係

まずPCと江戸越君との間での信頼関係を築きます。
ssh-copy-id edogoe@edogoe.jp とすることによって、sshで通信する際にパスワード不要となります。

GitHubから切り離す

次に今までGitHubで管理していたプロジェクトを、一旦gitの管理から外します。 .gitディレクトリを削除しますrm -fr .git。 この段階で今までの更新履歴が消えてなくなり、GitHubとはおさらばです。 忘れずに.gitignoreなんていうファイルも(必要なければ)削除します。

江戸越君へつなぐ

再度初期化しgit init、最初のコミットを行いますgit commit

江戸越君への定義をconfigに行います
git remote add origin ssh://edogoe@edogoe.jp/home/edogoe/edogoe.git

最後に江戸越君に現在の状況をpushします
git push origin master

これで江戸越君にマスター・リポジトリを預けたことに、なります。 後は作業の一区切りごとにcommitとpushを行っていけば、 プロジェクトの新しい歴史が刻まれて行きます。

ブログの移行には一工夫が

(jekyllを知らない人はちょっと我慢してください)

ブログはjekyllを利用しています。 GitHubでもjekyllを使っているので、 プロジェクトを預けてしまえば、 変更をpushする毎に自動的にブログサイトを生成して貰えました。

江戸越君にはそのようなサーバー機能はありません。 PC上でjekyllが作成した静的ブログサイトを送り込むことにします。

手元のPC上でもjekyllでブログサイトを生成してテストしてましたから、 そのまま江戸越君に同期すれば良いわけです。 問題はgitの管理ボリュームが無駄に増えることでした。 (プロジェクトから生成できるものをいちいち管理するのはもったいない)

この対策はjekyllの設定ファイルにあります。 jekyllの設定ファイルに
destination: /home/tsukasa/blogと書けば、 git管理の範囲外へ静的ブログを出力できます。

内容 場所 説明
プロジェクトは ~/edogoe jekyllのsource。git管理の中
ブログサイトは ~/blog BLOG Site。git管理の外


江戸越君の仮想ディレクトリに反映させるためにrsyncを用います。
rsync -r ~/blog/ edogoe@edogoe.jp:~/www

GFM(GitHub Flavored Markdown)

GitHub独自Markdown文法は美しいのですが、 サヨナラするしかありません。

以上です。

このポストが最初の履歴を刻みました。