GitとGit hubとは

この記事はGitとGit hubについて説明したサイト
herokuを使おうと思ったとき,Gitについてあんまり理解できてなかったため,ここでまとめて理解しようと思い,この記事を書くことにした.
渋谷で働くエンジニア福の「実践で学ぶプログラミング入門」 – YouTubeさんの動画を参考にして記事を書いた.具体的なGit/Git Hubの扱い方はこの記事では扱わないが,福さんの動画では実際に扱い方も説明している.

Gitとは

Gitとは,ファイルやソースコードの変更履歴を記録・追跡するためのバージョン管理システム
Gitを使うことで複数人での共同作業やプロジェクトの進行でも,各変更を効率的に管理し,必要に応じて過去の状態に戻すこともでき,複数の変更の統合も簡単に行うことができる.

Git hubとは

Git hubとは,Gitの仕組みを利用したWebサービス.Web画面でGitを使うことができ,ソースの公開やプロジェクト管理も行うことができる.Web画面で行うため使いやすい.

Gitの仕組み

リポジトリ

Gitのリポジトリとは,プロジェクトのファイルやディレクトリの状態,およびそれらの変更履歴を記録・管理する場所のことを指す.リポジトリを活用することで過去のバージョンへの復元や,複数人での効率的な共同作業が可能になる.

リポジトリには2種類あり,自分のPC上でのリポジトリは「ローカルリポジトリ」といい,サーバー上でのリポジトリは「リモートリポジトリ」という.

Gitの管理の流れ init, add, commit

init

initでリポジトリを作る(リポジトリの初期化)
実行すると.gitという隠しディレクトリが作成され,ここにGitが必要とする設定やデータが格納される.これにより,そのディレクトリ内のファイルやフォルダをGitで管理できるようになる.

隠しディレクトリ
通常の操作や表示設定では見えないように設定されたディレクトリのことを指す.主にシステム設定やユーザーの個別設定など,誤って変更されると問題が生じる可能性のある重要なデータを格納するために使用される.

add

addで指定したファイルの変更をステージングエリアに追加する.ステージングエリアとは,次のcommitに含める変更を一時的に保持する場所である.インデックスとも呼ばれることもある.これにより,どの変更をコミットするかを選択的に管理できる.

commit

commitでステージングエリアにある変更をリポジトリに記録する.各commitには,変更内容を説明するメッセージをつけることができ,推奨されている.これにより,後から履歴を確認する際に,各変更の目的や内容を簡単に理解できる.

リモートリポジトリについてもっと詳しく

ローカルリポジトリだけだと他の人に共有するのが困難であるため,リモートリポジトリを使うことで複数人でのファイルの管理を簡単にしている.

ローカルリポジトリを変更したものをリモートリポジトリに送ったり,他の人が変更したリモートリポジトリを自分のローカルリポジトリに落としてきたりする.
下の写真は渋谷で働くエンジニア福の「実践で学ぶプログラミング入門」 – YouTube【Git/GitHub入門】 GitHub登録方法とリモートリポジトリ #03から引用しました

pushとpull

pushとは,リモートリポジトリに変更内容を送ること
pullとは,リモートリポジトリから変更内容を取得すること

ここでまたGitHubとは

GitHubについて少し前で説明したが,リモートリポジトリを説明した後で,説明を付け加える.
GitHubとはGitのリモートリポジトリを提供するWebサービスの1つ.
複数人がファイルの取得,編集を行い履歴が管理される

Gitブランチ(branch)とは

git branchとはソースコードの履歴を枝分かれさせることができるGitの機能

なぜbranchを使うのか

プロジェクトを分岐させることで,独立した作業を可能にし,メインの開発に影響を与えることなく,新機能の追加やバグ修正などを並行して進めることができ,誰が何をやっているのかもわかりやすい.
また,分岐したbranchはいつでも合体(マージ)できる

コンフリクトとは

コンフリクトとは,ブランチの変更内容をマージする際に,同じソースが変更されている場合,変更内容が「衝突」し,マージができないこと.

.gitignoreとは

.gitignoreとは名前の通り,Git管理しないフォルダやファイルを記載するためのファイル
機密性の高いファイルの誤プッシュを防ぐ
注意点として,gitがある階層に置く必要がある

README.mdとは

アプリケーションの説明を記載する説明書
インストール方法や使い方などを記載

Git flowとは

Git flowとは,Gitを用いたソフトウェア開発におけるブランチ運用モデルの1つ.複数のブランチを役割ごとに運用する戦略として広く知られている.

運用ルールがあることで色々なブランチが乱立することを防ぎ,管理しやすくなる

具体的には「2つのメインブランチと3つのサブブランチ」を運用の柱として開発していく

master(main) 本番リリース用
develop  開発を行うメイン用
feature  個々の機能を開発する用
release  リリース直前の微調整用
hot-fix  本番データへの緊急修正用

Git flowの流れ

1.developからfeatureブランチを切る
2.開発終了でfeatureをdevelopにマージ
3.全開発終了後,developからreleaseを切る
4.release後,developにマージ,developをmasterにマージしてリリース
5.バグ発生後,masterからhotfixを切る,developとmasterにマージ

参考にしたもの

まとめ

今回はGitとGit Hubの用語の説明,仕組みについて学びました.
もし余裕があれば,実際にGit/Git Hubの使い方を説明した記事を書こうと思います.

コメント

タイトルとURLをコピーしました