前回はGit/GitHubの「そもそも」の話でした。今回はいよいよ実践編、Flutterプロジェクトを実際にGitHubへアップロードするところまで進みます。
最初のプッシュが成功した瞬間って、地味に嬉しいんですよね。今回はそこを目標にします。
まずはプロジェクトを作るところから
flutter create my_app
cd my_app
これで、Flutterの基本的なファイル一式が入ったフォルダができます。この時点ではまだGitとは無関係の、ただのフォルダです。
超重要:.gitignore の設定
ここが今回いちばん大事なポイントです。
Flutterプロジェクトの中には、/build フォルダのようにビルドのたびに自動生成される大量のファイルが含まれています。これらをうっかりそのままGitに記録してしまうと、
- リポジトリの中身が肥大化する
- 自動生成物同士が衝突して、差分(変更点)が意味不明な量になる
- そもそも「ソースコードの変更履歴」というGitの本来の役目からズレていく
といった問題が起こります。これを防ぐのが .gitignore というファイルです。「このファイル・フォルダはGitの管理対象外にする」というリストを書いておく仕組みです。
幸い、Flutterプロジェクトを flutter create で作ると、最初から .gitignore がある程度用意されています。中身を覗いてみると、
/build/
.dart_tool/
.idea/
のように、自動生成されるフォルダがすでに除外リストに入っているのがわかります。基本的にはこの初期設定をベースに使えばOKで、自分でプラグインや環境変数ファイル(.env など)を追加した場合に、そのつど .gitignore に足していく、という付き合い方になります。
基本の3大コマンドのイメージ
Gitの操作は無数にありますが、最初はこの3つの流れだけ押さえれば十分です。
git add…「この変更を、次の記録に含めますよ」と選ぶ作業(荷物を箱に詰めるイメージ)git commit…「この内容で記録を確定します」という作業(箱に封をして、ラベル(メッセージ)を貼るイメージ)git push…「確定した記録を、GitHub(クラウド)に送ります」という作業(箱を発送するイメージ)
実際のコマンドはこんな流れです。
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin [email protected]:ユーザー名/my_app.git
git push -u origin main
git remote add の行にあるURLは、GitHub上でリポジトリを作成した際に表示されるものをコピーして使います。
やらかしレスキュー策:.gitignore を後から追加したのに、ファイルが消えない
これ、最初にほぼ全員がハマるポイントだと思います。
.gitignore は「これから新しく追加されるファイル」を無視する設定です。すでにGitの管理下に入ってしまっているファイルには、後から .gitignore を書いても効きません。
その場合は、一度Gitの管理から外してあげる必要があります。
git rm -r --cached build/
git commit -m "remove build folder from tracking"
--cached を付けることで、パソコン上の実体は残したまま、Gitの記録からだけ外すことができます。ここで --cached を忘れると実ファイルまで消えてしまうので、要注意です(私も一度ヒヤッとしました)。
次回予告
次回は「個人開発でもブランチを切るべきか」というテーマです。main に直接プッシュして壊してしまう問題を防ぐための、作業用ブランチの使い方を扱う予定です。
一人開発だとブランチを分ける意味を感じにくいかもしれませんが、実際にやってみると安心感がかなり違います。次回もよろしくお願いします。
