最近、GitHub上でコードの公開ができるようになりました。大まかな手順はGitHub実践入門 を参考にしましたが、サーバーの環境が違うせいか、本と作業内容が若干異なります。
そこで、自分のためにもコードの公開までの記録を、残しておきたいと考えています。前提は以下の通りです。
- クライアントマシンとして使用しているPCのOSはWindows
- 転送ソフトとしてTeraTermを使用する
- サーバーは「さくらのクラウド」を使用し、任意のファイルをGitHubにpushするまでを想定している
- 公開鍵と秘密鍵は「さくらのクラウド」上で作成し、予めGitHubに公開鍵を登録している(詳しくはコチラ)
GitHubに公開するまでの手順
GitHubでファイルを公開するためには、以下の5つの手順を踏むことになります。
1.GitHub上でリポジトリの作成
GitHubのホーム画面の下にある、[New repositry]からリポジトリを作成します。自分のサーバーで作成したファイルは、ここで作成したリポジトリにpushされていきます。
2.リポジトリへのアクセスとパスの確認
http://github.com/ユーザー名/リポジトリ名にアクセスして、クラウドサーバー上でgit cloneするパスを確認します。パス名はpush先の、https://github.com/ユーザー名/リポジトリ名.gitです。
3.クラウドサーバー上でgit cloneする
クラウドサーバー上で git cloneし、GitHubにプッシュするリポジトリを自分のサーバーに取り込んでおきます。
[php]
git clone http://github.com/ユーザー名/リポジトリ名
[/php]
TeraTermでコマンドを実行し、成功するとこんな感じの画面になります。
4.コミットする
3で自分のサーバーに取り込んだリポジトリ(フォルダ)に、任意のファイルを作成します。git initで初期化し、git addでステージングエリアに上げ、git commitでコミットします(画像はコミット完了した後の、git logの様子)
5.pushして出来上がり
参考書では、git pushのコマンドだけで、GitHubのリポジトリにpushできるようです。しかし、自分の場合は同じことをするとエラーが出ます。
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/ユーザー名/test99.git/info/refs fatal: HTTP request failed
なので、自分はgit pushの前に、git remoteをしています。
[php]
git remote set-url origin https://ユーザー名@github.com/ユーザー名/リポジトリ名.git
git push -u origin master
[/php]
最後に、GitHubで登録したパスワードを聞かれますので、入力してpushが完了します。
git remoteが必要なのは、内部サーバー(ローカル開発環境)ではなく、外部サーバーからpushしているためだと推測します。Macのローカル環境であれば、git pushだけで済むのかもしれません。
個人的な感想
一連の作業のポイントは、GitHub上で作成したリポジトリを、自分のサーバーに取り込むところにあると思います。
要するにGitHub専用のリポジトリでないと、pushをしてもGitHubから受け付けを拒否されます。はじめのころは、そのことがよく分からず苦戦していました。
〔参考サイト〕