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のしくみはプログラムのバージョン管理(履歴管理)を行う上でとても魅力的である。お互いをあまり知らないような複数のメンバーがリモートで開発をする場合には不可欠。
また、フリーランスのプログラマーが大規模な開発案件に参加する上では必須のスキルと言えそうです。
投稿者プロフィール
- 代表者
-
東海大学工学部を卒業後、東芝情報システム株式会社(旧グループ会社含む)に入社。半導体(SRAM)の開発チームにて、Unix環境でのPerlを用いた業務自動化プログラムの開発など、エンジニアとしての確かな基礎と緻密な論理的思考力を培う。
その後、東証上場企業である株式会社ザッパラスへ。Web・モバイルの最前線で、数多くのユーザーに愛されるコンテンツ制作業務に従事。ここで「ユーザー目線に立った魅力的なWebコンテンツの企画・制作ノウハウ」を深く学ぶ。
開発・システム側から見た「堅牢なロジック」と、制作・ユーザー側から見た「伝わるコンテンツ」の双方を実務で経験した強みを活かし、フリーランスとして独立。
現在は、ウイングアーク1st株式会社の「データのじかん」運営チームに参画するなど、大手・中小企業のWeb運営・開発パートナーとして活動。完全在宅でありながら、固定IPの完備や厳格なセキュリティポリシーの遵守を徹底し、企業のインフラや本番環境を安全に支える「チームの一員」として高い信頼を得ています。
見た目の美しさはもちろんのこと、内部の構造やWordPressのカスタマイズ、運用・セキュリティまでを見据えた、技術的バックボーンのある高品質なWebサイト・システム制作をワンストップでご提供しています。

