グローバルナビゲーションへ

本文へ

フッターへ

お役立ち情報Blog



「Git」の基本を押さえて、実務で使えるようになるまで(実務編)


弊社ソリューション事業部ではほとんど全ての案件でgitを導入してプロジェクトの管理をしております。そこでエンジニア歴間もない筆者が、具体的に実務ではどのように使っているかをお伝えしたく、この記事を書きました。

今回は実務編ということで、前回「基本編」で紹介したコマンドを使用して、実務ではどのように使っていくのかを紹介していきます。

前回の記事:「Git」の基本を押さえて、実務で使えるようになるまで(基本編)

前提

筆者の環境

  • wsl2
  • Ubuntu-20.02
  • git version 2.25.1
  • GitHub

想定

  • 後輩エンジニア(筆者)と先輩エンジニアの2人で開発。
  • ブランチは、main・kouhai ・senpaiの3つがあり、それぞれローカルとリモートに存在。
  • メインのブランチを main、後輩エンジニアのブランチを kouhai、先輩エンジニアのブランチを senpaiとする
  • 後輩エンジニア(筆者)が開発する視点で記述

準備

  • GitHub でリモートリポジトリを作成し、初回コミット・pushまでできている状態にしておきます。まだ準備ができていない場合は、前回の記事『「Git」の基本を押さえて、実務で使えるようになるまで(基本編)』を参考に準備をお願いします。
  • 筆者はVimを使用してCLI上でファイルの編集をしますが、こちらはお好みのエディタを使用してください。

【0】自分が作業するブランチを作成してチェックアウトする

1.ブランチの確認

$ git branch -a

2.自分用のブランチを切りながら、チェックアウトする

$ git checkout -b kouhai
$ git branch -a

【1】README.mdを編集してmainブランチにマージされるまでの流れ

1. ファイルを編集

2. 変更箇所を確認、ステージング

$ git status

$ git diff

$ git add .
$ git status

3. コミットして、ログを確認

$ git commit -m "second commit"
$ git log --oneline --graph --decorate

POINT
赤枠の部分でkouhaiブランチのローカルとリモートのmainブランチとがずれていることを確認します。
 HEAD → が自分の今いる位置)

4. pushして、ログを確認

$ git push origin kouhai
$ git log --oneline --graph --decorate

POINT
赤枠の部分で、ローカルとリモートのkouhaiブランチが合っていること、それらとリモートのmainブランチとがずれていることを確認します。

5. mainブランチにプルリクエストを送る

Github上で、

 Compare & pull request 

 Create pull request 

という順でボタンを押下しプルリクエストを作成します。

6. mainブランチにマージされた後

ローカルのmainブランチをリモートのmainブランチに合わせる

$ git checkout main
$ git fetch
$ git pull origin main
$ git log --oneline --graph --decorate --all

POINT
下線の部分でローカルのmainブランチとリモートのmainブランチが合っていることを確認します。

ローカルのkouhaiブランチをリモートのmainブランチに合わせる

$ git checkout kouhai
$ git pull origin main
$ git log --oneline --graph --decorate --all

POINT
赤下線の部分でローカルのkouhaiブランチとローカル・リモートのmainブランチが合っていることを確認します。

リモートのkouhaiブランチをローカルのkouhaiブランチに合わせる

$ git push origin kouhai
$ git log --oneline --graph --decorate --all

POINT
赤下線の部分でローカル・リモートのkouhaiブランチとローカル・リモートのmainブランチが合っていることを確認します。

【2】先輩エンジニアがsenpai.mdを作成・編集した内容を取り込む

1.リモートリポジトリの情報を取得する

$ git fetch
$ git log --oneline --graph --decorate --all

POINT
赤下線の部分でローカルのkouhaiブランチよりも、リモートのmainブランチのcommitが進んでいることを確認します。

2.リモートリポジトリのmainブランチの変更内容を自分のブランチに取り込む

ローカルのkouhaiブランチをリモートのmainブランチに合わせる

$ git pull origin main
$ git log --oneline --graph --decorate --all

 senpai.md を取り込めたか確認

$ ls -l

$ vim senpai.md

リモートのkouhaiブランチをローカルのkouhaiブランチに合わせる

$ git push origin kouhai
$ git log --oneline --graph --decorate --all

【3】先輩エンジニアが編集したREADME.mdの内容を取り込む(コンフリクト発生)

1.リモートリポジトリの情報を取得する

$ git fetch
$ git log --oneline --graph --decorate --all

POINT
赤下線でリモートのmainブランチがローカルのkouhaiブランチのcommitよりも先に進んでいることを確認します。

pullする

$ git pull origin main

コンフリクトの発生

2. コンフリクトの解消からプルリクエストを送るまで

statusを確認

$ git status

POINT
メッセージの (fix conflicts and run “git commit”) に従って進めます。

コンフリクトの修正

コンフリクトした README.md をこのように修正します。

修正前

修正後

コンフリクトの解消

$ git add README.md
$ git status

$ git commit
$ git log --oneline --graph --decorate --all

リモートのkouhaiブランチをローカルのkouhaiブランチに合わせる

$ git push origin kouhai

プルリクエストを送る

こちらを参考に

3.mainブランチにマージされた後

fetch してリモートリポジトリの情報が更新されているか確認

$ git fetch
$ git log --oneline --graph --decorate --all

pullしてリモートリポジトリのkouhaiブランチにpushする

$ git pull origin main
$ git push origin kouhai
$ git log --oneline --graph --decorate --all

おわりに

今回の実務編では、addからpullRequestを送りmergeされた後どうするか【1】、他のエンジニアの編集内容を取り込む際の2つのパターン【2】【3】を、実際にどのコマンドをどのように使うかを示しつつ紹介してきました。

ここで紹介したのは本当に実務においての基本中の基本ですので、gitコマンド一つ取ってもまだまだ数多くあります。今回紹介した基本を押さえて、実際に使ってみてください。すると多種多様な状況にぶつかると思います。「これはどうするんだろう、こうやったらいいのかな」と考え、調べ、他のgitコマンドを試してみる中で、いつの間にか様々なgitコマンドが使えるようになっていると思います。

今回の記事(基本編・実務編)を通して、複数での開発経験がないエンジニア、これから初めて複数人での開発を経験するエンジニアの方々にとって、少しでも参考になれば嬉しく思います。

この記事を書いた人

KJG
KJGソリューション事業部 システムエンジニア
大学4年時春に文系就職を辞め、エンジニアになることを決意し、独学でRuby、Ruby on Railsを学習。
約1年間の独学期間を経てアーティスへWebエンジニアとして入社。現在はWebエンジニアとして、主にシステムの開発・運用に従事している。
抽象的なもの、複雑なものを言語化して文章にするのが好きで得意。
この記事のカテゴリ

FOLLOW US

最新の情報をお届けします