実はこの連載、「初心者に教える講座」というより「私自身がGitHubをちゃんと学び直す記録」に近いです。
30年近くWEB制作をやってきても、Gitはなんとなく使っているだけ…という方、実は多いのではないでしょうか。私もその一人でした。
せっかくなので、これから一緒に基礎から整理していこうと思います。今回は、黒い画面(ターミナル)を開く前の「そもそもなぜGit/GitHubが必要なのか」というところから始めます。
うっかり動かなくなったコードを、1秒で元に戻せる
アプリ開発をしていると、こんな経験はありませんか?
- 昨日まで動いていたのに、今日いじったら急に動かなくなった
- どこを直したら良くなったのか、逆に何を壊したのかわからない
- 「とりあえず前のバージョンに戻したい」のに、戻し方がわからない
Gitは、いわばコードのタイムマシンです。作業のたびに「記録(コミット)」を残しておけば、いつでもその時点の状態に戻れます。上書き保存しかできないエディタとは違い、「過去のどの時点にも戻れる」という安心感が生まれます。
バックアップをクラウドに置く安心感
パソコンが壊れた、うっかりファイルを消してしまった——長く開発をしていると、一度はヒヤッとする瞬間があります。
GitHubにコードを置いておけば、パソコンとは別の場所(クラウド)にも同じ記録が残ります。万が一の時も、GitHubから取り出せば作業を再開できます。Dropboxでのバックアップと考え方は近いですが、Gitの場合は「いつ・何を変えたか」という履歴ごと残せるのが大きな違いです。
Git(記録を取る道具)とGitHub(置き場・共有サイト)の違い
ここ、最初に混乱しやすいポイントです。
- Git:自分のパソコンの中で、変更履歴を記録していく「道具(ソフト)」
- GitHub:その記録をインターネット上に置いて、保管したり他の人と共有したりする「場所(サービス)」
たとえるなら、Gitが「日記帳に日々の記録をつける行為」、GitHubが「その日記帳を預けられるクラウド金庫」というイメージです。日記をつけること自体はGitの役目、それを安全な場所に保管して必要なら見せられるようにするのがGitHubの役目、と考えるとイメージしやすいかもしれません。
アカウント作成と初期設定(SSH接続まで)
ここからは実際の準備です。
- GitHubアカウントを作成する
github.com にアクセスし、メールアドレス・ユーザー名・パスワードを登録します。
※ユーザー名は後から変更もできますが、公開される名前なので落ち着いて決めましょう。 - SSHキーを作成する
パソコンとGitHubを安全にやり取りするための「鍵」を作成します。ターミナルで以下を実行します。ssh-keygen -t ed25519 -C "[email protected]"保存先を聞かれたら、特にこだわりがなければそのままEnterでOKです。 - 公開鍵をGitHubに登録する
作成された公開鍵(.pubが付くファイル)の中身をコピーし、GitHubのSettings → SSH and GPG keys → New SSH keyから貼り付けて登録します。 - 接続確認をする
ssh -T [email protected]「Hi ユーザー名! You’ve successfully authenticated」のようなメッセージが出れば成功です。
$ ssh -T [email protected]
# これが返ってきたら成功
# Hi ○○ You've successfully authenticated, but GitHub does not provide shell access.
やらかしレスキュー策:SSH接続で “Permission denied” と出たら
初回設定で意外とつまずくのがここです。焦らず、次の順番で確認してみてください。
- SSHキーを作成した場所と、登録した公開鍵の中身が一致しているか
ssh-addでキーがエージェントに登録されているか(ssh-add ~/.ssh/id_ed25519のように追加)- GitHub側に登録した公開鍵が、末尾まで欠けずコピーできているか(改行やスペースの混入もよくある原因です)
一つずつ潰していけば、大抵はここで解決します。
次回予告
次回は、実際にFlutterプロジェクトをGitHubにアップロードするところまで進みます。最初の壁になりやすい .gitignore の設定や、git add / git commit / git push の基本コマンドを扱う予定です。
私自身もまだ勉強中の身なので、つまずいたところも正直に書いていこうと思います。よろしければ、次回もお付き合いください。
