本文へスキップ

Gitとは?バージョン管理の基本を未経験向けにわかりやすく解説

#Git#バージョン管理#初心者#未経験#インフラ学習

エンジニアの求人情報や学習ロードマップで「Git」という言葉を必ず見かけますが、具体的に何をするための道具なのか、最初はイメージしにくいかもしれません。結論から言うと、Gitとは、ファイルの変更履歴を記録して、必要になればいつでも前の状態に戻せるようにするバージョン管理システムのことです。インフラエンジニアの現場でも、構成管理のコードやスクリプトをGitで管理するのが当たり前になっているため、未経験のうちから仕組みだけでも理解しておくと学習の土台になります。

変更履歴が積み重なって前の状態に戻せるGitの仕組みのイメージ

Gitとは何か

Gitは、ソースコードやスクリプトの変更履歴を記録するための分散型バージョン管理システムです。ファイルを上書き保存するたびに以前の内容が消えてしまうのではなく、変更の記録(スナップショット)が積み重なっていくイメージを持つと理解しやすくなります。

たとえば、設定ファイルを編集していて途中から動かなくなってしまった場合でも、Gitで記録を残していれば、どの変更が原因なのかをさかのぼって確認できます。この「いつでも過去の状態に戻れる」という安心感が、Gitが広く使われている理由の一つです。

バージョン管理の仕組み(なぜ必要か)

Gitを使わない場合、ファイルの変更履歴は「ファイル名に日付をつけて別名保存する」といった手作業で管理することになります。この方法は、ファイルの数が増えるほど、どれが最新で、どの変更が何のためだったのかが分かりにくくなっていきます。

項目手作業でのバージョン管理Gitでのバージョン管理
変更の記録ファイルを複製して日付をファイル名に付けるコミットという単位で変更内容と理由を記録する
過去の状態への復元目的のファイルを探して手動で戻すコマンド1つで指定した時点の状態に戻せる
複数人での作業同じファイルの上書きで変更が消えやすい変更を統合する仕組みがあり、衝突も検知できる
変更の理由覚えていないと分からなくなるコミットメッセージとして記録に残る

複数人で同じファイルを編集する場面になると、この違いはさらに大きくなります。誰がいつ何を変更したのかが記録として残るため、後から見返しても経緯を追いやすいという特徴があります。

Gitの基本的な操作の流れ

Gitの操作で最初に押さえておきたいのは、ファイルの変更が記録として確定するまでに3つの段階を通ることです。

作業ディレクトリからステージ、リポジトリへと変更が記録される流れ
  1. 作業ディレクトリ: ファイルを編集している、普段作業している場所
  2. ステージ: 次の記録に含めたい変更を一時的に選んでおく場所(git addで移動)
  3. リポジトリ: 選んだ変更が記録として確定して保存される場所(git commitで確定)

この3段階があることで、「編集した内容の一部だけを今回の記録に含める」といった調整ができます。Linux学習ロードマップでも紹介している通り、Gitの操作もターミナルのコマンドで行うことが多いため、コマンドを打つのが怖いと感じる人は、まず壊れても良い環境でGitの操作に慣れておくと安心です。

GitHubとの違い

GitとGitHubは名前が似ているため混同されやすいですが、Gitは手元のパソコン(ローカル)で変更履歴を記録する仕組みそのもので、GitHubはその記録をインターネット上で保管・共有するためのサービスという違いがあります。git pushというコマンドで、ローカルに記録した変更をGitHub上のリポジトリへ送ることで、他の人とコードを共有したり、バックアップとして残したりできます。

現場では、チームで同じGitHub上のリポジトリを使い、各自が変更をpushして統合していくという使い方が一般的です。

未経験がGitとどう関わるか

未経験から入ってすぐに、複雑な変更を一人でGitで管理する役割を任される場面は多くありません。最初は、すでにあるリポジトリから変更を取得する(git pull)、決められた手順で変更を記録して送る(git add→git commit→git push)という一連の操作に慣れることから始まります。

現役でインフラの現場にいる立場から言うと、Gitの操作で止まったときに、エラーメッセージを読んで自分の操作のどこが原因かを切り分けられるかどうかが、未経験のうちから評価される分かれ目になりやすいと感じます。コミットする前に変更内容を確認する習慣をつけておくと、意図しない変更を記録してしまうミスを減らせます。学習の記録としてGitの利用履歴を残しておくと、職務経歴書に書ける学習実績としても使いやすくなります。

InfraDojoで学ぶ

InfraDojoなら、ブラウザ上の演習環境でLinuxのコマンド操作に慣れながら、Gitのようなツールを使う前提となる土台を手を動かして身につけられます。何から学び始めればいいか迷う場合は、キャリアの全体像から学習の優先順位を確認しておくと判断しやすくなります。

よくある質問

Q. GitとGitHubは同じものですか?

いいえ、異なるものです。Gitは変更履歴を記録する仕組みそのもので、GitHubはその記録をインターネット上で保管・共有するためのサービスです。似た名前のため混同されやすいですが、Gitを使うためにGitHubが必須というわけではなく、ローカルだけでGitを使うことも可能です。

Q. 未経験からGitの学習は難しいですか?

最初のgit add・git commit・git pushという一連の流れだけなら、コマンドの意味を理解しながら繰り返し操作すれば未経験でも身につけられます。慣れてきたら、複数人での変更を統合する場面など、少しずつ難易度の高い使い方に進んでいく形で問題ありません。

Q. Gitの学習はプログラミング経験が無くても始められますか?

始められます。Gitはプログラミング言語の知識そのものではなく、ファイルの変更履歴を管理するための仕組みなので、インフラエンジニアがスクリプトや設定ファイルを管理する場面でもそのまま使われます。まずは壊れても良い環境で、変更を記録して戻すという一連の流れに慣れることから始めると良いです。

Reo|インフラエンジニアのアイコン

この記事を書いた人: InfraDojo運営者(Reo|インフラエンジニア)

現役インフラエンジニア。SESの現場経験に基づき、未経験からのインフラ転職と学習を支援しています。InfraDojoは、ブラウザ上のターミナルで実際に手を動かして学べるインフラ学習サイトです。

@Reo_engineer_

読むだけで終わらせず、今日から手を動かす

InfraDojoは、ブラウザを開くだけでLinux・ネットワーク・AWSの演習ができる学習サイトです。登録は30秒、最初のコースは無料です。