2025.03.17
こんにちは。クラウドソリューション部の鈴木です。
Git、開発エンジニアの方は利用なさっている方も多いのではないかと思います。
プログラムなどのソースコードを記したファイルを保存し、さらに変更した履歴も保存できます。
Git管理が軌道にのると、作業が格段に効率化されます。とても便利なシステムです!!
今回は、そのGitの基礎編ということで紹介していきます。

開発の現場では、すでにデファクトスタンダードとなっておりますので、開発中級者から上級者の方はこのブログ記事は物足りないかもしれません。
しかし、いま一度、Gitを含むバージョン管理が普及していなかった頃の開発現場を思い出してみてください。
その頃、私はWeb開発に携わっておりHTMLファイルなどを扱ってネットショップを制作していました。
メニューを増やすなどHTMLを変更しなければならないときは・・・
これを変更の度にくり返すとバックアップファイルもどんどん増えますし、ファイル中のコメントも増えてしまって冗長化したソースコードで読みにくくなっていましたよね。
また時間も手間もかかりますし、ストレージも逼迫します。何より安心して変更できないのです。

フォルダやファイルを整理整頓できるようになり、効率化でき、精神的にも穏やかに開発ができるようにしてくれたGitの技術、概念がとても素晴らしいと思いませんか。(先人の方々、本当にありがとう)
これまでGitとは縁遠かった職種の方々も、ぜひこの恩恵を受けていただきたいです。
そのため、初級の方も理解しやすい記事にしました。説明中で例えが技術的に不適切である場合があるかもしれませんがご容赦ください。
分散型バージョン管理システムのこと。読み方はギット。
複数の環境あるいは単一の環境で、変化するファイルやフォルダのスナップショットを記録し、後で過去のバージョンを呼び出すことができます。

Subversion、CVS(コンカレント・バージョンズ・システム)などもありますが、今回は割愛します。
Gitを使うとメリットが多々あります。
日々の業務で、下記のようなことはありませんか?
→記録されている変更履歴の中から、戻したい部分の名前を指定するとその状態へ切り替えることができます。
→そのファイルを扱う全員で、Git管理を徹底することで誰がいつどのファイルをどのように変更したか確認することができます。
このようにGitを導入する前で起きがちであった問題を解決することができます。
Gitを理解する上でカギとなる、いくつかの主要な用語・操作があります。先ほどの「Gitのイメージ図①」を再度載せますので、参考にして大枠をつかみましょう。

リモートリポジトリとローカルリポジトリの2種類があります。どちらもファイルやフォルダを保存できるストレージ(倉庫)であり、変更履歴を登録できるデータベースサーバーです。
| リモートリポジトリ | イメージ図では上部の赤いものが該当します。ネットワーク上におくことで、他の複数の環境から参照でき、またクローン(次で説明)することができます。 つまりプロジェクト毎に(例えば顧客毎や、Webサイト毎)リモートリポジトリを作成し、管理を任されている間はずっとそのリポジトリで変更を行います。 現在はGitHubやGitLabといったホスティングサービス上にリモートリポジトリを設置することが主流のようです。 尚、ネットワーク上に設置しても「プライベート」設定を行うことで限定されたユーザーだけが参照できるようにすることが可能です。 |
|---|---|
| ローカルリポジトリ |
イメージ図での下部の灰色の2つが該当し、ユーザーの1人目Aさんも自分自身の環境にローカルリモートリポジトリを作成し、2人目Bさんも同様に作成した状態です。 |
イメージ図には載せていませんが、リモートリポジトリからローカルリポジトリへコピーを作成する操作です。ほとんどのユーザーがこの操作を最初に行うことでしょう。
ローカルリポジトリで変更を行ったら、コミットを行います。イメージ図ではAさんもBさんも行っています。各々わざとらしくセリフを言っていますね。
ファイルを上書き保存すると、変更した箇所がdiff(読み方はディフで、意味は差分。)として確認できます。そのdiffを確認し意図したものであれば、まずステージと呼ばれる領域にアップして「これとこれが今回のコミット対象ファイルですよ」と明示した上でコミットを行います。この時点では、リモートリポジトリへの反映はされません。次のプッシュを行いましょう。
コミットを実行した後、AさんもBさんも行っています。プッシュを行うことで技術的にはブランチと呼ばれるものをリモートリポジトリへ送っています。結果それまでに行ったコミットがリモートリポジトリで表示されるようになります。
Bさんだけが行っているプルという操作もあります。これは自分以外の環境で変更されたときの為のものです。
イメージ図でのBさんのように、クローンをした後で他のだれか(Aさん)が変更を行うと、Bさんのローカルリポジトリは古くなってしまいます。Aさんが行った変更を取り込むことで、最新の状態を保つことができます。
とは言え、頻繁にプルしなければならないような状況ですと厄介なことも起きたり無駄な作業も発生しますので、同時作業ではなく作業する時期をずらすか、変更するファイルを完全に分けるなどの運用にするとよいでしょう。
大枠が掴めましたでしょうか。なんとなくで構いません。使えばすぐ慣れますし、次に示すイメージ図②でも詳細が見えてくるかと思います。また「ブランチ」という、新しい用語も出てきましたのでそちらも解説します。

このイメージ図は、Gitの変更履歴が枝分かれする様をグラフィカルに表したものです。丸い記号がたくさんありますね。この〇は、一番下のものがコミットで、その他はマージと呼ばれる操作によるものです。
そして左側が過去で、右側が現在です。未来はありません。そりゃそうですよね、変更した「履歴」をどんどん記録していくわけですから^^;
まさにこの枝分かれの様子をツリーと言います。作業ツリーやワークツリーとも呼ばれます。
ツリーを構成する樹木の幹と枝そのものです。任意の名前をつけることができますが、このブランチ名によってツリーの見やすさが変わりますので、運用ルールを設けて全員で守るようにしましょう。
1番の親は、ここではmainブランチで樹木の幹となります。尚、mainでなく運用ルールとして他の使いやすい名前にすることも可能です。
2番目の親は、developブランチです。
3番目は、それぞれのfeatureブランチ(feature-1とfeature-2)です。
ツリーを見ると、mainブランチからdevelopブランチへと枝分かれし、developブランチからそれぞれのfeatureブランチへと枝分かれしています。親子関係を持たせるためにブランチを作成する際にその手順を踏んでいるのです。親子関係によってツリーがわかりやすくなり、運用時のミスも減るというメリットがあります。
実際の現場では、3番目のそれぞれのfeatureブランチにてファイル変更作業を行います。もちろん運用次第で、どのブランチで変更をしてもOKなのですが、mainやdevelopブランチで変更作業を行うと、Gitの恩恵を最大限享受することはできません。mainやdevelopブランチは取りまとめ役での運用が推奨されています。
また重要なポイントとして、イメージ図②の各featureブランチにある吹き出しに示しているように、そのブランチで変更作業をしてコミットすると当然コミットは時系列で増えていきます。そして最新のコミットにブランチの先頭があるということです(まるで枝が成長して伸びているようですね)。
これはGitを利用する上で重要です。ローカルリポジトリでのブランチが今どこにあるのか、リモートリポジトリでmainやdevelopブランチを進めていないか、進めていればプルすべきか/すべきでないか。ブランチを把握をすることが不可欠です。
ツリーをさらによく見ると、子のブランチから親のブランチへ合流していることがわかりますね。樹木で見かけることはあまりありませんが、Gitではこのマージという操作を頻繁に行いますし、またとても役立ちます。
このマージを行うと、子ブランチで行われた変更を取り込むことができますので、従来のファイル管理、バージョン管理よりも格段に安全でスピーディーになりました。
ただしマージをしたからといって各fetureブランチが干渉されることはありません(干渉するように操作を指定しなければ)。feture-1ブランチからdevelopブランチへマージをしても、feture-1ブランチの先頭は動かないのです。マージの〇ではマージ先だけに変更があったので、マージ先のdevelopブランチの位置でだけ〇が表示され、developブランチだけ枝が伸びたのです。
尚、このマージという操作はmainやdevelopブランチという重要なブランチへ影響することがありますので、現在の主流はプルリクエストという機能が利用されています。
ファイルを変更したユーザー本人ではない他のユーザーにて問題ないかを確認していただき、OKが出ればマージができるという機能です。
開発現場ではコードレビューと呼ばれており、自分よりも上級スキルのユーザーから行っていただけると理想ですが、全員おなじくらいのスキルといった場合や上級スキルの方がおいそがしい場合は立候補制または交代制にしてもよいと思います。そこは運用しながらブラッシュアップしましょう。
またコードレビューで指摘をされたときは落ち込んでしまうものですが、よりよい品質にすること、未然にミスを防いでくれたという感謝を持って、また自分自身のスキルアップにも繋がりますので、勇気を出してプルリクエストを出してみましょう。
さて、説明が長くなってしまいました。
今回のブログの目的は、まだGitを導入されていない・導入したけど使いこなせていないといった初級者の方向けに執筆しましたので、説明を簡潔にするため、いくつかの機能を省略させていただいたり、実践については触れておりません。
機会がありましたら、省略させていただいた機能と実践をご紹介したいと思います。
少しでも、Gitへ興味を持っていただけたら幸いです。
2026.03.13
近年、社長など企業の代表者を装い、LINEなどの別ツールへ誘導する「CEO詐欺」が増加しています。これは従来のビジネスメール詐欺(BEC)の手口を応用したもので、メールでのやり取りを最小限にすることでセキュリティソフトによる検出を回避しようとする特徴があります。件名や表示名を社長名に偽装するなど巧妙化しており、攻撃の自動化やAIの悪用も指摘されています。こうした状況の中で、不審に思う意識を持ち、社内で情報共有を行うことが被害防止の第一歩となります。
2026.03.09
SNSでも話題の透き通った質感とぷっくりとした立体感が魅力のボンボンドロップシール。子どもだけでなく大人も惹きつける一方で、品薄や転売、持ち物格差などブームの過熱も目立ちます。子どもの笑顔を願う親心が、いつの間にか焦りや疲れに変わってしまうことも。流行を否定せず楽しみつつも、大人が冷静な姿勢を保つことの大切さを考えてみました。
2026.03.02
AIの進化により「SaaSの死」という議論が広がっています。従来のSaaSは人の入力を前提としていましたが、AIが業務を自動化することで役割は変化しつつあります。一方で、DXが単なるツール導入に終わっている現状も課題です。今後は、信頼できるデータを蓄積したSaaSと生成AIを組み合わせ、経営判断につなげる活用が重要になります。
2026.02.24
神社周辺の整備を続けてきましたが、久しぶりに訪れた湧き水の場所はイノシシに掘り返され、整備前よりも荒れた状態になっていました。人工林の放置や樹種の偏り、野生動物の増加など山の構造的問題にも触れながら、自然との向き合い方を見つめ直します。整備はしばらく休止すること