箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

GitHubでリポジトリの作成とアプリケーションの開発

f:id:y_hakoiri:20191102121842j:plain

新しくアプリケーションを作る時に、同じく新しくGitHubのリポジトリを作ることになると思います。

おそらく慣れてしまえばブログに残すほどのことでも無いかもしれませんが、

現段階ではまだ数回しかリポジトリの作成をしておらず、今後流れが分からなくなった時に参照するために

リポジトリの作成から、最初のブランチを切ってプルリクを出すまでの手順を書いておこうと思います。

 

 

  1. rails newでとりあえずアプリケーションを作る
  2. ローカルリポジトリを作る
  3. ローカルにあるファイルを全てコミット
  4. リモートリポジトリを作る
  5. ブランチを作る
  6. 空のコミットをする
  7. リモートリポジトリにプッシュする
  8. プルリクエストを出す
  9. アプリケーションの開発に入る

 

この順番じゃなくてもいけますが、一番効率的で共同開発者に親切かなーと思った手順です。

工程が多くて難しそうに見えてしまいますが、そんなことはないです。

順番に見ていきます

 

  • rails newでとりあえずアプリケーションを作る

 まずリポジトリを作る前にアプリケーションの土台を作成します。

 $ rails new アプリケーション名 -d データベース  

 $ cd アプリケーション名

 $ bundle exec rake db:create

 

  • ローカルリポジトリを作る

 GitHubDesktopから左上のcurrent Repository → add → Add Existing Repository

 ローカルリポジトリに反映させたいフォルダの選択ができるようになるので、

 先ほど作ったアプリケーションを選択しAddボタンを押す

 

  • ローカルにあるファイルを全てコミット

 ローカルリポジトリが開けたら、GitHubDesktopを見てみる。

 すると、先ほどアプリケーションを作った時に自動生成されたファイルやフォルダがずら〜っと並んだ状態になっている。

 とりあえずこれらを編集する前にコミットさせておく。

 

 コミット名は「Initial commit」なんかが適切かなーと思います

 

  • リモートリポジトリを作る

 コミットができたら、それを定期的にリモートリポジトリにプッシュする必要がある。

 まだリモートリポジトリは作成してないが、プッシュされた時にリモートリポジトリがなかった場合は自動的に作ってくれるので、このままプッシュ

 

 この時、デフォルトでリモートリポジトリの公開範囲がprivateにチェックが入っているので、

 特に理由がなければそのチェックを外しPublic状態で作成すること。

 ※もし間違えてPrivateにしてしまった場合はGitHubから変更できる

 

  • ブランチを作る

 土台の準備が整ったので、アプリケーションの実装に入っていく。

 まずははじめに作りたい機能のブランチを作成する

 GitHubDesktopのNew Branchから任意のブランチ名を入力

 

  • 空のコミットをする

 ブランチが出来上がったら、とりあえず空のコミットをする※理由は後ほど説明

 GitHubDesktopからは編集されたファイルがない状態でのコミットはできないので、

 ちょっとめんどくさいけどターミナルからコマンドを打ってコミット

 

 $ git commit --allow-empty -m 'create pull request'

 -m以下はコミットメッセージ

 

  • リモートリポジトリにプッシュする

 コミットができたらGitHubDesktopに戻るとプッシュできるようになっているのでプッシュする※理由は後ほど説明

 

  • プルリクエストを出す

 表題に[WIP]をつけた状態でプルリクエストを出しておく。

 ※WIP=作業中という意味

 

 プルリクは作業が完了した時に出せば良いのではなく、ブランチを作ったらとりあえず「今このブランチで作業してますよ〜!」と周知するために最初に出しておく。

 最初のプルリクを出すために、上の工程で空のコミット(プルリクを出すためのコミットなのでコミット名は'create pull request'にしてある)をし、プッシュしておいた

 

  • アプリケーションの開発に入る

 作業中のプルリクが出せたら、いよいよエディタを編集し実装に入る。

 この後は出来るだけ細々コミットし、定期的にプッシュしながら作業を進める。

 一通りブランチ名と対応する機能が実装できたら、プルリクのWIPを外し、レビューをお願いする。