Git学習に関する備忘録
Gitの概要
Git(ギット)とは、プログラムソース等の変更履歴を管理する分散型のバージョン管理システムです。
チームでのシステム開発において、メンバーがローカル環境で制作、修正したファイルの変更履歴を残しファイルの状態を過去の状態に戻したり、他のメンバーと変更内容がバッティングしたときの制御を行うことで、複数人での開発作業を効率化することができます。
GitとGitHubの違い
Git(ギット)とGitHub(ギットハブ)はそれぞれ別の名称で、Git(ギット)バージョン管理システムそのものを示し、GitHub(ギットハブ)はGit(ギット)へのアクセス、操作を行うためのクライアントソフトを示します。
Gitの構成要素
Git(ギット)の主な構成要素は「Gitサーバー」または「Gitホスティングサービス」と「Gitクライアント」のふたつとなります。複数のメンバーがGitクライアントを介してGitサーバーとファイル(履歴含む)のやりとりを行います。
Gitサーバー・Gitホスティングサービス
Gitサーバーとはバージョン管理を行うための中枢である「リモートリポジトリ」を持つサーバーで、Gitを利用するために不可欠な要素です。また、Gitホスティングサービスでは会員登録をするだけで無料で簡単にリモートリポジトリを作成することができます。
Gitクライアント
GitクライアントはGitサーバー、または、Gitホスティングサービス内のリモートリポジトリとやりとりをするためのクライアントソフトで、代表的なものには「GitHub DESKTOP」があります。このGitクライアントソフトを介してファイルのアップロード、ダウンロードを行うことで履歴が管理できます。
Gitの基本操作
Gitの基本的な操作はシンプルで「プッシュ(アップロード)」と「プル(ダウンロード)」のふたつが主となります。その他「クローン」という操作がありますが、これはGitで管理するプロジェクトのリモートリポジトリの利用を開始する際に、ローカル環境にリポジトリの内容一式をダウンロードする操作で、リポジトリを利用する最初の一回しか行わない操作となります。
Gitの利用手順
- 1.Gitサーバー構築、または、Gitホスティングサービス登録
- 2.リモートリポジトリの作成
- 3.コラボレーター(メンバー)によるGitHubアカウント作成
- 4.コラボレーターにアクセス権限を与える
- 5.開発の開始
学習した感想
変更履歴が残って問題が生じた際に正常に動いていた過去の状態に戻せることは開発を行う上でかなり便利で安心感はあります。(誤ってファイルを削除などは起こりえるため)
ただ、作業のバッティング(競合)に関する処理については少数の開発ではさほど便利さが感じられないように思います。細かな変更でプッシュをして動かない状態が発生するとメンバーに迷惑をかけるし、かといってあまり長い時間プッシュせずに作業を行っていると競合が発生する確率が上がってしまいます。
そう考えると少数開発の場合には担当する機能(ファイル)を完全に分けてしまった方がわかりやすい気はします。
ただ、履歴管理は便利なので一人開発でも使いたいところです。
大規模な開発や、不特定多数が関わるオープンソースのシステム開発ではその効力を発揮するしくみのように感じました。
まとめ
Gitのしくみはプログラムのバージョン管理(履歴管理)を行う上でとても魅力的である。お互いをあまり知らないような複数のメンバーがリモートで開発をする場合には不可欠。
また、フリーランスのプログラマーが大規模な開発案件に参加する上では必須のスキルと言えそうです。