見出し画像

Gitとは?各用語とGitflowを学び、レポジトリを作ってみよう!

はじめに

こんにちは!マンハッタンコードのみちこです。
Gitはエンジニアだけではなく、デザイナーやディレクターなど、ITに携わる方全てが必須知識となっています。
今更聞けない各用語やGitを使う上で必要になってくるGitFlowについて解説をします!


Gitとは?

Gitとは分散型バージョン管理システムの1つです。
多くの開発で使われることがあり更新履歴を残したり、他人の編集した最新ファイルを上書きしようとした際には警告がでるため、編集内容を上書きしてしまうことも防げます。
多くのコードを編集した上で不具合が起きたときに、元のバージョンへ戻すことはよくあることです。ですが1行1行のコードを編集する度にバージョン管理すると時間がかかってしまいますし、人の手でやろうとすると必ず抜け漏れやミスが発生します。その際に無駄なく、効率的に管理してくれるツールがGitです。

他にもSVNという集中型バージョン管理システムもあります。
これはGitとは真逆となりスプレットシートのように誰かが更新するとすぐに上書きされてしまうもので、複数人で開発をする際に1人がエラーを出すとみんな使用できなくなってしまいます。


Gitflowとは?

Gitflowとは、Gitの機能であるブランチを活用した開発手法です。
以下の図をのように各ブランチごとに役割があり、枝のように切り分けて使用します。

ぎtfぉw

master
世の中にリリースされているデータが入っているブランチです。
全ての大本となるものになります。

develop
原則、直接更新しないものですが、README.mdやissueやプルリクのテンプレートの更新の際に直接更新が許されるケースもあります。(開発メンバーやリーダーに確認してから更新しましょう)

feature
developから切り離し開発を行うブランチです。
最終的にはfeatureで更新しdevelopに更新内容を取り込みます。

release
リリース前の確認や準備を行うブランチです。
このreleaseブランチで先にリリースをし問題がなければmasterにmergeを行います。

hot-fix
リリースされているが、緊急の修正が必要な際に対応をするブランチです。
ここに大量にブランチがある場合はかなり危険な状態です。

Gitflowの大まかな流れ

・developブランチからfeatureブランチを作成して、機能・タスクごとに開発を進める
・featureで開発したものはdevelopブランチにマージする
・上記を繰り返して開発を進める
・リリース時にはreleaseブランチを作成し、バグ修正を行い動作確認をする
・releaseブランチをmaster, developブランチにマージし公開する
・緊急度の高いバグが発見されたらhot-fixブランチを用意し対応する
・hot-fixブランチをmaster, developブランチにマージし公開する


Gitを使ってみよう

Gitを使用する際にはGithubでリポジトリを作成する必要があります。

スクリーンショット 2021-11-08 20.21.30

Repositoresの右側にNewとあるのでクリックし、リポジトリの名前と公開範囲を設定します。
リポジトリの名前は基本プロジェクト名や個人で開発する場合は個人名などを入れて作成する場合が多いです。
またプロジェクトの情報を外に出したくなければPrivateに設定しましょう。

スクリーンショット 2021-11-08 20.22.21

この際に合わせてREADMEのファイルも作成しましょう。
READMEとは簡単に説明すると説明書のようなもので環境構築の方法や名称のまとめ、ルールなどを明記します。

ここまできたらあとはターミナルやSourece Treeを使用して先ほど説明した各種ブランチを作成します。


まとめ

・Gitとは分散型バージョン管理システムのことで複数人での開発に向いている。
・Gitflowとはブランチを活用した開発手法で、master、develop、feature、release、hot-fixの5つを軸に枝のように切り分けて開発を進めていく
・Githubでリポジトリを作る際は必ずREAD ME(説明書)を作成する。

かなり初歩的になりましたが、Gitを扱う上で重要になってくる用語や使い方について簡単にまとめてみました。
次回以降は基本となるコマンドや実際によく発生するエラー内容やその対処法について解説したいと思います!
次回もお楽しみに!


株式会社マンハッタンコードってどんな会社?

お仕事のご相談・ご依頼マンハッタンコードは、フロントエンドの開発に特化しております。エンジニアリングから、デザイン、プロジェクト推進などアプリ開発を総合的に請け負うことが可能です。弊社のホームページからお問い合わせください


この記事が気に入ったらサポートをしてみませんか?