【Git,Github】業務フロー(開発フロー)


記事にした経緯

以前、とあるIT企業で開発のアルバイトをしていました。
当時はgitやgithubの基本的な操作は知っていたのですが、
「結局、業務の中でどんな風に使えばいいの?」となっていました。
そこで、「gitやgithubの業務(開発)フローの記事があったら、役に立つ人いるんじゃね??」思い、記事を執筆しました。

対象

  • gitの基礎はわかる人

gitを使った開発フロー

  1. 自分の作業場所を最新状態にする
  2. ブランチ名を作成,作成したブランチに移動する
  3. ソースコードの修正、追加などを行う
  4. 修正、追加したソースコードをステージングに追加する
  5. ステージングに追加したファイルをローカルリポジトリに追加する
  6. Githubのリモートブランチを更新する
  7. GithubでPR(pull request)作成する
  8. レビューをもらう
  9. 3へ
  10. 全て修正すれば、マージしてもらう(する)
  11. マージし終わったら、作成したブランチを削除する

1. 自分の作業場所を最新状態にする

まずは、自分自身の作業場所を最新状態にします。

最新状態する方法は主に以下の三つです。

$ git pull 

or

$ git fetch & git rebase origin リモートブランチ名

or

$ git fetch & git merge origin リモートブランチ名

個人的には二番目のgit fetch & git rebase origin リモートブランチ名を使っています。

2. ブランチ名を作成,作成したブランチに移動する

自分の作業をするためにブランチを作成し(切って)、作成したブランチに移動します。
ブランチの作り方は主に二通りあります。

$ git branch ブランチ名 & git checkout ブランチ名

or

$ git branch -b ブランチ名
  • -b: ブランチを作成し、チェックアウトする
    会社によってブランチ名の命名規則にはルールがあると思いますが、
    基本的にはgitflowにしたがった命名規則でブランチ名をつけていました。

参照
https://nvie.com/posts/a-successful-git-branching-model/

3. ソースコードの修正、追加などを行う

機能追加や修正するためにソースコードを追加、修正を行います。

4. 修正、追加したソースコードをステージングに追加する

3.で修正や追加したソースコードをgithubに反映させるために、まずはステージングにあげてやる必要があります。
コードをステージングに追加するためにはaddコマンドを使用します。

$ git add 修正したソースコード1, 修正したソースコード2, ・・・

自分自身はgitコマンドを打つことは少なく、tigを使ってやっていました。

5. ステージングに追加したファイルをローカルリポジトリに追加する

次にステージングにあげたソースコードをローカルリポジトリに追加します。
コマンドは以下の通りです。

$ git commit -m "コミットメッセージ"

コミットメッセージは何をしたのかがわかるようにしっかりと書きましょう。
commitについてもaddコマンドと同様にtigを使用していました。

コミットメッセージを間違えた場合など

コミットメッセージを間違えたり、ソースコードをローカルリポジトリに上げ忘れたりする時があると思います。
そういったときは以下のコマンドでコミットを取り消すことができます。

git commit --amend

6. Githubのリモートブランチに更新する

修正したソースコードをローカルリポジトリに上げ終わったら、次はgithubのリモートリポジトリにその内容を反映してやる必要があります。
その場合はpushコマンドを使用します。

$ git push origin ブランチ名

7. GithubでPR(Pull Request)作成する

pushし終わったら、修正したソースコードをレビュアーの方々に見てもらうためにプルリクエストを作成します。
プルリクエストの作成方法は以下を参考にしてください。
プルリクエストの作成方法

8. レビューをもらう

プルリクエストを出すと、レビュアの人が自分が修正したコードに対して、コメントや修正依頼が入ります。

9. 3へ

修正依頼をもらった場合は、またソースコードの修正を行います。

10. 全て修正すれば、マージしてもらう(する)

修正依頼が全て終われば、レビュアーの方が出したプルリクエストを承認(approve)してくれます。
レビュアー全員の承認が降りれば、そのプルリクエストがdevelopブランチにマージされます。
(レビュアーの方か自分自身でマージを行います。)

developブランチ
- 次のリリースのための最新の開発作業の変更が反映されているブランチ

11. マージし終わったら、作成したブランチを削除する

マージされたら、作業していたブランチを削除して、作業は終了です。
他のブランチ(developブランチなど)に移動して、以下のコマンドで作成したブランチを削除します。

$ git branch -d ブランチ名

まとめ

gitの開発の流れ

  1. 自分の作業場所を最新状態にする
  2. ブランチ名を作成,作成したブランチに移動する
  3. ソースコードの修正、追加などを行う
  4. 修正、追加したソースコードをステージングに追加する
  5. ステージングに追加したファイルをローカルリポジトリに追加する
  6. Githubのリモートブランチを更新する
  7. GithubでPR(pull request)作成する
  8. レビューをもらう
  9. 3へ
  10. 全て修正すれば、マージしてもらう(する)
  11. マージし終わったら、作成したブランチを削除する

さいごに

今回は、git,githubの開発の流れについて書きました。
何かわからないことなどありましたらコメントよろしくお願いいたします。