4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

記事投稿キャンペーン 「2024年!初アウトプットをしよう」

【未経験エンジニア】Gitを用いたチーム開発の雰囲気をざっくり掴む

Last updated at Posted at 2024-01-01

はじめに

「Gitは勉強していたはずなのに...」とならないようにするために最低限の開発フローをまとめていきます。タイトルにはざっくりと書いていますが、できるだけ丁寧に説明していきますので、これからエンジニアとして働く方の力に少しでもなれれば幸いです。

対象読者

  • 実務未経験でこれからエンジニアとして働く方
  • Gitを勉強中でチーム開発でどのように活用するのか雰囲気を掴みたい方

開発フロー

プロジェクトのクローン

まずはプロジェクトをクローンしてきます。開発用のディレクトリを作成し、以下のコマンドを実行します。

shell
$ git clone <リポジトリURL>
$ cd <クローンしてきたディレクトリ名>

ブランチ情報の確認・ブランチの作成

リモートリポジトリのブランチ情報を確認します。

shell
$ git branch -r
  origin/HEAD -> origin/main
  origin/bug-fix
  origin/main

ここで注意しておきたいのが、これから取り組むタスクが

  • 自分が先行して開発するのか / 自分だけで完結する作業なのか
  • 誰かの続きから作業を開始するのか

上記どちらかなのかをしっかり確認することです。

前者の場合、例えばバックエンド開発が既に終わっていて、これからフロントエンド開発を進める場合などがあります。

前者の場合は、以下のコマンドでローカルにブランチを作成し、作成したブランチに移動しましょう。

shell
$ git branch <ブランチ名>
$ git switch <ブランチ名>

git switch -c <ブランチ名>で上記のコマンドを一発で実行可能です。

後者の場合は、誰かが事前に作業ブランチをリモートにプッシュしてあるはずです。例えば、先ほどgit branch -rの実行結果でorigin/bug-fixというブランチが既にありました。このブランチから作業を始める場合、以下のコマンドでリモートブランチの情報をローカルブランチに持ってきましょう。

shell
$ git branch <ブランチ名> <リモートブランチ名(origin/bug-fix)>
$ git switch <ブランチ名>

プルリクエスト(マージリクエスト)の作成

これでどちらの場合でもローカルに作業ブランチを用意することができました。作業を始める前に、作成したブランチをリモートにプッシュしておきましょう。

shell
$ git push origin <ローカルブランチ名>

これでリモートにも作業ブランチを用意することができました。GitHub / GitLabのリポジトリ画面に行き、作業ブランチがあるか確認してください。また、この段階でプルリクエスト(マージリクエスト)を作成しておきましょう。作成方法は公式ドキュメントなどを参考に、最初は先輩エンジニアに聞きながら作成することを勧めます。
【GitHub】pull request の作成
【GitLab】マージリクエストの作成

チームによるかとは思いますが、作業前にプルリクエスト(マージリクエスト)を作成しておくことで、作業準備が適切にできているか確認することができます。この段階で差分が見受けられた場合、ブランチの作成方法に何らかミスがありますので、先輩エンジニアにヘルプを求めましょう。

プルリクエスト(マージリクエスト)作成後はローカルでの作業に戻ります。作業ブランチにいることを確認します。

shell
$ git branch

確認後、作業を進めていきましょう。作業後、addcommitしていきます。それぞれでgit statusコマンドを実行し、ステージング、コミットされた変更が正しいか確認することを勧めます。

shell
$ git add .
$ git status
$ git commit -m "<コミットメッセージ>"
$ git status

コミットが問題なく行えていたら、プッシュしていきます。

shell
$ git push origin <ローカルブランチ名>

この段階でプルリクエスト(マージリクエスト)にて差分が確認できます。作業内容がしっかりと反映されているか確認しましょう。どのブランチをどのブランチにマージするのかも要チェックです。セルフチェック後、問題がなければプルリクエスト(マージリクエスト)をレビュアーに確認してもらいましょう。レビューでボコボコにされてOKが出ましたら、レビュアーにマージしてもらってください。

作業ブランチの片付け

マージ後、ローカルでの作業に戻ります。チームのルールによってはリモートの作業ブランチが削除されていると思います。リモートの情報が更新されていますので、git fetchコマンドを実行してからリモートブランチを確認しましょう。

shell
$ git fetch
$ git branch -r
  origin/HEAD -> origin/main
  origin/main

削除されていることが確認できたら、mainブランチに戻ります。

shell
$ git switch main

mainブランチの情報もリモートと差分ができているため、git fetchコマンドを実行してからマージしましょう。

shell
$ git fetch
$ git merge origin/main

git pullと同じですが、最初はfetchmergeそれぞれの仕様を覚えるためにもpullは使わないことを勧めます。

これでローカルのmainブランチも最新の状態になりました。ローカルの作業ブランチを削除しておきましょう。

shell
$ git branch -d <ブランチ名>

これで一連の作業が完了しました。お疲れ様でした!
新しい作業を始める際は、これの繰り返しです。ブランチの作成から始めてください。ただし、作業を始める前はgit fetchを忘れないように注意しましょう。

おわりに

ここまで読んで頂きありがとうございました。私自身いざ実務に入るとコマンドが不安になったり、フローの理解に自信がなくなったりしていました。何なら練習用リポジトリのmainブランチでやらかして、先輩エンジニアに迷惑をかけてしまいました。本記事で最低限の作業フローは網羅したつもりです。後は細かいテクニックでより便利に効率的に開発を進められるように私も勉強していきます。
何か誤りや質問等がありましたら遠慮なくコメント頂ければと思います。これからはQiitaにも投稿していこうと思いますので、皆様どうぞよろしくお願いいたします!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?