前回、AstroでプロジェクトをVSCode上に作るところまで書きました。ファイルを作っただけでは「PC内にしかデータがない」状態なので、次はGitHubと連携させて、変更履歴を残せるようにする作業をしました。結論から言うと、紐付け自体は思っていたよりあっさり終わったのですが、最初のプッシュ(GitHubへの送信)でいきなりエラーに当たりました。実際にやった手順をそのまま書いておきます。
1. Gitをインストールする
VS CodeでGit操作をするには、まずPC自体にGitがインストールされている必要があります。VS Code左側の「ソース管理アイコン」(枝分かれしたようなマーク)を開いても、Gitが入っていないと何も操作できませんでした。以下の公式サイトからインストーラーを取得します。
https://git-scm.com/
サイトを開いたら「Standalone Installer」をクリックしてダウンロードします。インストール中の設定項目はほとんどデフォルトのままで進めましたが、ひとつだけ意識的に選んだのが「Use VS Code as Git's default editor」という項目です。ここだけVS Codeを選択し、それ以外は基本的にすべて「Next」で進めました。
2. VS CodeでGitHubにサインインする
Gitのインストールが終わったら、次はVS Code自体に自分のGitHubアカウントを認識させます。手順は以下の通りです。
- VS Codeを開き、左下の「人の形をしたアイコン(アカウント)」をクリック
- 「Backup and Sync Settings」を選択
- 「Sign in」ボタンをクリック
- 「Sign in with GitHub」を選択
ここでブラウザが自動的に立ち上がり、GitHubのログイン画面が表示されました。自分のアカウントでログインし、「Authorize vscode」(VS Codeを許可する)をクリックします。その後VS Codeに戻ると「開きますか?」というポップアップが出るので、「開く」を押せば紐付けは完了です。この一連の流れは、思っていたより迷うところがなく、すんなり終わりました。
3. 自分の名前とメールアドレスを設定する(初回のみ)
サインインができても、Gitで保存(コミット)する際には別途「誰が書いたか」という署名の設定が必要でした。これを先にやっておかないと、あとでエラーになると聞いていたので、最初に済ませておきます。VS Codeのメニューから「表示」→「ターミナル」を開き、以下の2つのコマンドを順番に打ち込みました。
git config --global user.name "your-username"
git config --global user.email "[email protected]"
ユーザー名とメールアドレスは、GitHubに登録したものに合わせるのが一般的なようです。ここは環境ごとに変わる部分なので、自分のGitHubアカウント情報に置き換えて実行してください。
4. ローカルのフォルダをGitHubへ送る
紐付けができたところで、実際に前回作ったAstroプロジェクトのフォルダをGitHubに送ってみることにしました。
まず、左上の枝分かれアイコンをクリックし、青いボタン「Open Folder(フォルダーを開く)」を押して、対象のフォルダを開きます。フォルダを開くと、左側の表示が「Initialize Repository(リポジトリを初期化する)」というボタンに変わったので、それをクリックしました。これで、そのフォルダがGitで管理される状態になります。
初期化が終わると、今度は「Publish to GitHub」というボタンが出てきました。これをクリックし、画面上部に出た選択肢から「Publish to GitHub private repository」を選びました。セキュリティ対策として、Public(公開)ではなくPrivate(自分だけ見れる状態)にしています。これで、your-username/フォルダ名という形式のリポジトリがGitHub上に自動で作成されました。
この時点で、ファイル名の横に「U」というマークが付いているのに気づきました。調べたところ「Untracked(まだGitに記録されていない新しいファイル)」という意味だそうです。いよいよここから、コミットとプッシュの作業に入ります。
5. Commit(コミット)とPublish/Push(プッシュ)の違いでつまずいた
最初は「コミット」と「プッシュ」が同じもののように感じていて、ここで一番混乱しました。整理すると、次のような違いがあるようです。
Commit(コミット)は、自分のPC内にある「タイムマシン」に、今の状態を記録することです。ファイルの変更を確定させ、「ヘッダーの色を変えた」のようなメッセージと一緒に保存しますが、これはあくまでローカルPCの中だけの記録で、この時点ではまだGitHub側には何も送られていません。作業のキリが良いタイミングで、何度でも行って良いものだと理解しています。
一方、Publish / Push(公開・プッシュ)は、PCに貯めてきたコミットの履歴を、GitHubへ一気に送信することです。こちらは実際にGitHubのサーバー上に保存されます。1日の作業が終わったタイミングや、サーバーに反映させたいタイミングでまとめて行うのが良さそうです。
6. 実際に出たエラーと、その対処
理屈が分かったところで実際にコミット・プッシュを試したのですが、ここで2つエラーに遭遇しました。
1つ目は「Can't push refs to remote. Try running "Pull" first」というエラーです。文面だけ見ると何を直せばいいのか分かりにくかったのですが、対処としては、まず青いボタンの「Commit」を押し直すことで解決しました。
2つ目は「Commit operation was cancelled due to empty commit message」というエラーです。これはそのままの意味で、コミット時のコメント(メッセージ)を空欄のまま実行しようとしたのが原因でした。何でもいいので一言コメントを書いてから、青いボタンの「Commit」を押すと解消しました。
両方のエラーを解消したあと、最後に青いボタン「Publish Branch」を押しました。すると「Sign in with your browser」という選択肢が出てきたので、それを選んでブラウザ側で認証を済ませたところ、無事にGitHub上へファイルが反映されました。
エラー文をそのまま検索すれば、大抵は解決する
今回出た2つのエラーも、原因が分かれば対処自体は数クリックで終わるものでした。最初は身構えてしまいましたが、コミットとプッシュの違いさえ理解できていれば、落ち着いて対処できると分かったのが今回の収穫です。次はこのGitHubリポジトリをCloudflare Pagesと連携して、実際に公開するところまで書こうと思います。