0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DAY36】チーム開発におけるGit

Posted at

はじめに

私は個人開発ではGit、Githubを使っていますが、チーム開発ではGit、Githubを使ったことがほとんどなく、コンフリクトに遭遇したこともありません。Gitの知識はチーム開発をする上では必須の知識であるため、もっと学びたいと考え、サポーターズ主催の勉強会「チーム開発でコンフリクトしないためのGit・GitHubの使い方」に参加させていただきました。そこでの学びをここに記します。

Gitとは

バージョン管理システムの一つです。
分散型のシステムで、個人のPCで完結し、他の人に影響を及ぼさずに変更ができます。

Gitのブランチ

ブランチとは、プロジェクト内で並行して作業を進めるための分岐点であり、他の作業に影響を与えず作業することができます。
「メインブランチ」と「作業ブランチ」があり、メインブランチにはmasterやmainというブランチ名が使われます。
作業ブランチには好きな名前をつけられますが、同じ名前のブランチは同時に一つしかつくれません。
作業ブランチで作業したものはメインブランチにマージされるように開発をするのが一般的です。

GitのHEAD

HEADとは、現在の作業場所を指すポインタであり、「今自分がどこで作業しているか」を表します。
HEADがmainブランチを指しているなら、全てのコミットはmainブランチに対して行われます。

HEADが指す場所は「ブランチ」と「コミット」の2種類あります。
HEADが「ブランチ」を指しているとき、最新のコミットがHEADになります。
HEADが「コミット」を指しているとき、デタッチHEAD状態と呼びます。HEADは直接コミットを指しているため、どのブランチにも属していない状態となります。

Gitのコンフリクト

コンフリクトとは、2つのブランチをマージしたとき変更が衝突することです。
Gitは衝突したどちらの変更を残すべきか自動的に判定できないため、人間が手動でコンフリクトを解消させる必要があります。

コンフリクトしないためには、「リモートリポジトリ」と「ローカルリポジトリ」の「HEAD」を意識して開発する必要があります。
開発中にHEADがどのブランチを指しているかを常に確認することが重要です。
誤ったブランチで作業をすると、後で意図しないコミットが他のブランチに含まれてしまいます。
また、他の人の作業をローカルリポジトリに取り組むことも重要です。最新のリモートブランチとローカルブランチのHEADを合わせないまま開発をすると、変更履歴がずれてしまいます。

Gitでコンフリクトした時に困らないためには、コミットを小さく保つことが重要です。
そうすることで、もしコンフリクトしても解決が簡単になります。
また、マージもなるべく小さな単位でするといいです。

Githubのプルリクエスト

プルリクエストの概要欄には、概要や変更内容、テスト内容などを記入します。
リクエストを受けたチームメンバーはコードレビューをします。コメントをするとその内容が表示されます。コメントに対しては返信もできます。
問題がなければプルリクエストをマージします。
プルリクエストを使うとどんな変更があったかを記録に残せます。また、コードレビューしてからマージできます。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?