かんたんなTODOアプリを作る(4回目)

4回目はGitの基本操作の習得を課題としました。 今回もレイアウトと機能は発展させていません。

「最近はGitHub Flowを使うのが主流」というツイートを見かけたので、そのGitHub Flowの流れを実際にやってみました。もちろん1人で。


まずはアプリケーションの作成とリポジトリの作成

rails newでTodoAppというアプリケーションを作成したあと、アプリのディレクトリに移動

git initでローカルリポジトリを作成

git add . , git commit -m "first commit"でローカルリポジトリへコミット

GitHubのサイト上でNew Repositoryをクリック

git remote add origin ~~~~~~~~をコピーして、ターミナルに入力

git push -u origin masterでリモートリポジトリへプッシュ

実際の開発業務でこの作業を行う機会があるのかどうかはわかりませんが、これで準備が整いました。

用途に合わせてたくさんのブランチを用意するGit Flowに比べて、GitHub Flowは完成版を置くmasterブランチ作業用ブランチの2つだけで運用するのでシンプルです。

では、ひとりGitHub Flowをやってみよう

リモートリポジトリにプッシュした時点ではmasterブランチにいるので、作業用ブランチを切る。(今回はTaskモデルを作成するので、"create-task-model"という名前にしました)

作業用ブランチでTaskモデルの作成

git statusで確認

git add .

git commit -m "create task model"でローカルリポジトリへコミット

git push origin create-task-modelでリモートリポジトリへプッシュ

GitHub上でプルリクエストを作成

(本来は別の人にコードレビューしてもらってから行うところを)自分でプルリクエスト承認

GitHub上でmasterブランチへmergeして、GitHub上の作業用ブランチを削除

git chekout master

git pull --rebaseでリモートリポジトリの最新状態をローカルリポジトリに反映させる

再び作業用ブランチを切って作業再開(以下くりかえし)


という流れです。

GitHub Flowのポイント

  • 作業用リポジトリを定期的にプッシュしてプルリクエストを作成
  • 他の開発者にコードレビューしてもらってプルリクエストを承認してもらう
  • 承認したらリモートリポジトリのmasterブランチへmerge

シンプルでわかりやすい……!


★のところですが、作業内容をmasterブランチへmerge済みなのはリモートリポジトリ上だけなので、ローカルリポジトリの方でもmasterブランチを最新の状態にする必要があります。
そのために★を実行してリモートリポジトリの最新状態をローカルリポジトリのmasterブランチに反映させる、ということです。
自分はここを理解するのに少し時間を使いました。
やはり実際に手を動かしてみるのが1番ですね!

今後の課題

  • 同じものをより早く作れるようになる
  • テストを書きながら作業を進める(今回ひとつも書いてない!)
  • git管理の方法のひとつ?であるgit-flow?を身につける
  • bootstrapを使ってみる
  • 機能の充実